intermediate/workshop/DockerCompose/rm_command.md
The docker-compose rm command helps to Remove stopped containers.
version: '3.7'
services:
#Nginx Service
webserver:
image: nginx:alpine
container_name: Nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
dbserver:
image: mysql:5.7
container_name: Mysqldb
restart: unless-stopped
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: Pa$$w0rd
MYSQL_USER: test
MYSQL_PASSWORD: Pa$$w0rd123
MYSQL_DATABASE: test
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
$ docker-compose up -d
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
Mysqldb docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
Nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
$ docker-compose ps --services
webserver
dbserver
$ docker-compose stop webserver
Stopping Nginx ... done
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
Mysqldb docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
Nginx nginx -g daemon off; Exit 0
$ docker-compose rm
Going to remove Nginx
Are you sure? [yN] y
Removing Nginx ... done
We can use <b>-f</b>, <b>--force</b> to skip asing confirmation to remove container.
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------
Mysqldb docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
$ docker-compose rm -fs dbserver
Stopping Mysqldb ... done
Going to remove Mysqldb
Removing Mysqldb ... done
NOTE: By default, anonymous volumes attached to containers are not removed. You can override this with -v.
Next >> Lab #22: Down Command