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:
$ docker create < image_name >
$ docker create nginx
$ docker create --name < container_name > < image_name >
$ docker create --name nginx-container nginx
$ 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
$ docker run -d detached mode (background) -t pseudo-tty (terminal) < image_name >
$ docker run -dt nginx
3. Running containers:
$ docker run < image_name >
$ docker run nginx
$ docker run -d < image_name >
$ docker run -d nginx
$ docker run -d --name < container_name > < image_name >
$ docker run -d --name nginx-container nginx
$ docker run -it < image_name > /bin/bash
$ docker run -it nginx /bin/bash
4. Getting 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
$ 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
$ docker container prune
$ docker rm -f $(docker ps -a -q)
$ docker container rm -f $(docker ps -a -q)
7. Removing containers:
$ docker run --rm < container_id or container_name >
$ docker run --rm nginx-container
$ docker run --rm df1c49ee5275
$ docker run --rm < image_name >
$ docker run --rm nginx
8. Setting environment variables in a container
$ docker run --name [container_name] -e ["key1=value1"] [image_name]
$ docker run --name my_container -e "key1=value1" my_image
$ docker run --name [container-name] --env-file [path-to-env-file] [image-name]
$ docker run --name my_container --env-file .env my_image