Docker: Basic Usage
Basic Usage
docker images
docker pull <image-name>:<image-tag>
docker rmi <image-name>:<image-tag>
docker ps -a
docker run -it [--name <docker-name>] <image-name>:<image-tag>
docker run \
-d \
-w <container-working-path> \
-p <host-port>:<container-port>[/[tcp|udp]] \
-e <environment-variable-name>=<environment-variable-value> \
[--name <docker-name>] <image-name>:<image-tag>
docker start [-i] [-a] <container-id>
docker stop|kill <container-id>
docker rm [-f] <container-id>
docker <cmd> --help
Build
Dockerfile
:
# syntax=docker/dockerfile:1
FROM <image-name>:<image-tag>
LABEL org.opencontainers.image.authors="lucassix.lee@gmail.com"
RUN <shell-commands && ...>
VOLUME ["<persistent-data-container-path>", ...]
ENV <env_var>=<value>
WORKDIR <container-working-path>
COPY <host-file> <container-file>
CMD ["<command>", ...]
EXPOSE <container-port>[/udp]
cd <docker-working-path>
docker build -t <image-name>:<image-tag> .
docker scan <image-name>:<image-tag>
docker run \
-d \
-v <persistent-data-host-path=$PWD>:<persistent-data-container-path> \
-p <host-port>:<container-port> \
[--name <docker-name>] \
<image-name>:<image-tag>
Publish Images
docker build -t <image-name>:<image-tag> <host-path>
docker login -u <user-name>
docker push <user-name>/<image-name>:<image-tag>
# Rename
docker tag docker/<old-image-name> <user-name>/<new-image-name>
Persistent Storage: Volume
docker volume create <volume-name>
docker run -v [<host-path>|<volume-name>]:<container-path> <image-name>:<image-tag>
Networking
docker network list
docker network create <network-name>
docker run --network <network-name> <image-name>:<image-tag>
Others
docker exec <container-id> <cmd>
docker attach <container-id>