Docker-Compose Kill / Port / Exec / Run / Restart / Pull
docker-compose kill
command use to kill the container
gaurav@learning-ocean:~/docker-compose$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
docker-compose_webapp1_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8000->80/tcp
docker-compose_webapp2_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8002->80/tcp
gaurav@learning-ocean:~/docker-compose$ docker-compose kill
Killing docker-compose_webapp1_1 ... done
Killing docker-compose_webapp2_1 ... done
gaurav@learning-ocean:~/docker-compose$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------
docker-compose_webapp1_1 /docker-entrypoint.sh ngin ... Exit 137
docker-compose_webapp2_1 /docker-entrypoint.sh ngin ... Exit 137
gaurav@learning-ocean:~/docker-compose$
docker-compose port
command is use to see the mapping of container ports. Command tells about on which port of host, the container port is mapped. The below command shows that port 80 of the webapp1 container is mapped to port 8000 of the host.
gaurav@learning-ocean:~/docker-compose$ docker-compose start
Starting webapp1 ... done
Starting webapp2 ... done
gaurav@learning-ocean:~/docker-compose$ docker-compose port webapp1 80
0.0.0.0:8000
gaurav@learning-ocean:~/docker-compose$
docker-compose logs
is the command to see the container logs.
gaurav@learning-ocean:~/docker-compose$ docker-compose logs
Attaching to docker-compose_webapp1_1, docker-compose_webapp2_1
webapp2_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
webapp2_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
webapp2_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
.....
if you want logs continually from containers then use -f
gaurav@learning-ocean:~/docker-compose$ docker-compose logs -f
docker-compose exec
the command is use to run any command inside, docker exec does not create a new container to run any command ,it will run it on running containers.
gaurav@learning-ocean:~/docker-compose$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
docker-compose_webapp1_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8000->80/tcp
docker-compose_webapp2_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8002->80/tcp
gaurav@learning-ocean:~/docker-compose$ docker-compose exec webapp1 ls
bin docker-entrypoint.d home media proc sbin tmp
boot docker-entrypoint.sh lib mnt root srv usr
dev etc lib64 opt run sys var
gaurav@learning-ocean:~/docker-compose$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
docker-compose_webapp1_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8000->80/tcp
docker-compose_webapp2_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8002->80/tcp
gaurav@learning-ocean:~/docker-compose$
docker-compose run
docker-compose run command will create a new container and then runs the command inside it.
gaurav@learning-ocean:~/docker-compose$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
docker-compose_webapp1_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8000->80/tcp
docker-compose_webapp2_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8002->80/tcp
gaurav@learning-ocean:~/docker-compose$ docker-compose run webapp1 ls
Creating docker-compose_webapp1_run ... done
bin docker-entrypoint.d home media proc sbin tmp
boot docker-entrypoint.sh lib mnt root srv usr
dev etc lib64 opt run sys var
gaurav@learning-ocean:~/docker-compose$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
acc6ef6c3366 nginx "/docker-entrypoint.…" 32 seconds ago Exited (0) 31 seconds ago docker-compose_webapp1_run_240e22a09a9f
aa9371ae4c98 nginx "/docker-entrypoint.…" 25 minutes ago Up 9 minutes 0.0.0.0:8000->80/tcp docker-compose_webapp1_1
225a77fbc32b nginx "/docker-entrypoint.…" 25 minutes ago Up 9 minutes 0.0.0.0:8002->80/tcp docker-compose_webapp2_1
gaurav@learning-ocean:~/docker-compose$
What is the Difference between docker-compose exec and docker-compose run Command?
the command is used to run any command inside, docker exec does not create a new container to run any command, it will run it on running containers, whereas the docker-compose run command will create a new container and then runs the command inside it.
docker-compose restart
will restart the container
gaurav@learning-ocean:~/docker-compose$ docker-compose restart
Restarting docker-compose_webapp1_1 ... done
Restarting docker-compose_webapp2_1 ... done
gaurav@learning-ocean:~/docker-compose$
docker-compose pull
will pull the images(that we are using docker-compose.yaml) from the repository
gaurav@learning-ocean:~/docker-compose$ docker-compose pull
Pulling webapp1 ... done
Pulling webapp2 ... done
gaurav@learning-ocean:~/docker-compose$