Docker Commands

Note: When typing any Docker container ID, you don't have to type the whole thing, just the necessary number of characters that will differentiate the container from others.

Start a Container

docker run ansible
docker run mongodb
... # This runs container in the foreground (attached to stdout of container and you will see output)

docker run -d <repo-name>
# this runs container in the background (detached, won't see output)

docker run <image-name>:<version> # ex. docker run redis:4.0 (called a tag)

docker run --name webapp ansible # Name conainer webapp

List Running Containers

docker ps
docker ps -a # Previously exited containers too

Stop Container

docker stop <container_id>
docker stop <container_name>

Remove Container

docker rm <container_id>
docker rm <container_name>

# Run docker ps -a to see if it's truly gone

List Images

docker images

Remove Images

docker rmi <image_name> # ex. docker rmi nginx
# MUST DELETE ALL DEPENDENT CONTAINERS FIRST

Download an Image (Doesn't run container)

docker pull <image_name> # ex. docker pull nginx

Executing a command on the container

docker exec <container_name> <command> # ex. docker exec silly_samet cat /etc/hosts

Attach

docker attach <container_id>
docker attach <container_name>

Interactive Mode

# When you need STDIN or to interact with the container
docker run -i <repo> # will not show user input prompt though
docker run -it <repo> # for STDIN and showing prompt (we attach ourselves to the docker container's terminal)

Inspect Containers

# Shows environmental variables of container and other information 
docker inspect <container_name>

Container Logs

docker logs <container_name>

Set Environment Variables

docker run -e ENV_VAR=blue <image_name>

# Adding password to SQL database
docker run -e MYSQL_ROOT_PASSWORD=<password> mysql

Build Image

docker build -t <image_name> /directory/to/Dockerfile # Creates image based off of your Dockerfile locally
# e.g. docker build -t webapp .

docker build <dockerfile_name> -t <image_name>

Publish Image

docker push <image_name>

See Image build history

docker history <image_name>

Clear Device Memory

docker system prune

Last updated