Docker: A primer for PHP Developers

               A container is a runnable instance of an image.

               You can create, start, stop, move, or delete a container using Docker API or Docker CLI.

               You can connect a container to one or more networks, attach storage to it, or even create a new image based on its current                 state.

               1. Creating containers:

#creates a new container from Docker image

$ docker create < image_name >
$ docker create nginx

#creates a new container from Docker image with fixed name

$ docker create --name < container_name > < image_name >
$ docker create --name nginx-container nginx

#builds a Docker image from a container

$ docker commit < container_id or container_name > [username/]< new_image_name >[:tag]
$ docker commit c3f279d17e0a kbarut/my_image:v3
$ docker commit nginx-container kbarut/my_image:v2

               2. Starting containers:

$ docker start < container_id or container_name >
$ docker start nginx-container
$ docker start df1c49ee5275

#start a container from an image and keep it running

$ docker run -d  detached mode (background) -t pseudo-tty (terminal) < image_name >
$ docker run -dt nginx

               3. Running containers:

#runs a container in the foreground (default mode)

$ docker run < image_name >
$ docker run nginx

#runs a container in detached mode (in the background)

$ docker run -d < image_name >
$ docker run -d  nginx

#runs a container with an assigned name

$ docker run -d --name < container_name > < image_name >
$ docker run -d --name nginx-container nginx

#runs the container in interactive mode and start the bash shell inside the container:

$ docker run -it < image_name > /bin/bash
$ docker run -it nginx /bin/bash

               4. Getting inside a running container:

#gets inside a running container

$ docker exec -it < container_id or container_name > /bin/bash
$ docker run -d --name nginx-container nginx
$ docker exec -it nginx-container /bin/bash

#passing a command (/bin/bash or other) to a container and executing that command in the container
$ docker exec -it nginx-container echo "Echoing a message from the container"

               5. Stopping containers:

$ docker stop < container_id or container_name >
$ docker stop nginx-container
$ docker stop df1c49ee5275

               6. Deleting stopped containers and running containers

#deletes all stopped containers
$ docker container prune
#deletes all stopped containers and all running containers
$ docker rm -f $(docker ps -a -q)
$ docker container rm -f $(docker ps -a -q)

               7. Removing containers:

#removes a container
$ docker run --rm < container_id or container_name >
$ docker run --rm nginx-container
$ docker run --rm df1c49ee5275

#removes a container after it exits
$ docker run --rm < image_name >
$ docker run --rm nginx

               8. Setting environment variables in a container

#sets an environment variable in a container
$ docker run --name [container_name] -e ["key1=value1"] [image_name]
$ docker run --name my_container -e "key1=value1" my_image

#imports an environment variable in a file (here .env) into a container
$ docker run --name [container-name] --env-file [path-to-env-file] [image-name]
$ docker run --name my_container --env-file .env my_image

Kâmi Barut-Wanayo © 2024 - 2025