概述

  1. 启动 docker 服务
service docker start
  1. 帮助命令
# 显示 docker 的系统信息
docker info

# 帮助命令
docker 命令 --help
  1. 镜像命令
# 查看所有本地主机上的所有镜像
# REPOSITORY: 镜像的仓库源 
# TAG: 镜像的标签
# IMAGE ID: 镜像的ID
docker images

# docker images命令的可选项:
#  -a, --all             Show all images (default hides intermediate images)
#      --digests         Show digests
#  -f, --filter filter   Filter output based on conditions provided
#      --format string   Pretty-print images using a Go template
#      --no-trunc        Don't truncate output
#  -q, --quiet           Only show image IDs
docker images -a
  1. 查看镜像变更历史
docker history 镜像ID
  1. 下载镜像
# 下载镜像
docker pull

# docker pull命令的可选项:
# Options:
#  -a, --all-tags                Download all tagged images in the repository
#      --disable-content-trust   Skip image verification (default true)
#      --platform string         Set platform if server is multi-platform capable
#  -q, --quiet                   Suppress verbose output
  1. 删除镜像
# 删除镜像
docker rmi 镜像名称或镜像ID

# docker rmi命令的可选项
# Options:
#  -f, --force      Force removal of the image
#      --no-prune   Do not delete untagged parents
  1. 容器命令
# 新建容器并启动
docker run [可选参数] image

# docker run命令的可选项
Options:
      --add-host list                  Add a custom host-to-IP mapping (host:ip)
  -a, --attach list                    Attach to STDIN, STDOUT or STDERR
      --blkio-weight uint16            Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
      --blkio-weight-device list       Block IO weight (relative device weight) (default [])
      --cap-add list                   Add Linux capabilities
      --cap-drop list                  Drop Linux capabilities
      --cgroup-parent string           Optional parent cgroup for the container
      --cgroupns string                Cgroup namespace to use (host|private)
                                       'host':    Run the container in the Docker host's cgroup namespace
                                       'private': Run the container in its own private cgroup namespace
                                       '':        Use the cgroup namespace as configured by the
                                                  default-cgroupns-mode option on the daemon (default)
      --cidfile string                 Write the container ID to the file
      --cpu-period int                 Limit CPU CFS (Completely Fair Scheduler) period
      --cpu-quota int                  Limit CPU CFS (Completely Fair Scheduler) quota
      --cpu-rt-period int              Limit CPU real-time period in microseconds
      --cpu-rt-runtime int             Limit CPU real-time runtime in microseconds
  -c, --cpu-shares int                 CPU shares (relative weight)
      --cpus decimal                   Number of CPUs
      --cpuset-cpus string             CPUs in which to allow execution (0-3, 0,1)
      --cpuset-mems string             MEMs in which to allow execution (0-3, 0,1)
  -d, --detach                         Run container in background and print container ID
      --detach-keys string             Override the key sequence for detaching a container
      --device list                    Add a host device to the container
      --device-cgroup-rule list        Add a rule to the cgroup allowed devices list
      --device-read-bps list           Limit read rate (bytes per second) from a device (default [])
      --device-read-iops list          Limit read rate (IO per second) from a device (default [])
      --device-write-bps list          Limit write rate (bytes per second) to a device (default [])
      --device-write-iops list         Limit write rate (IO per second) to a device (default [])
      --disable-content-trust          Skip image verification (default true)
      --dns list                       Set custom DNS servers
      --dns-option list                Set DNS options
      --dns-search list                Set custom DNS search domains
      --domainname string              Container NIS domain name
      --entrypoint string              Overwrite the default ENTRYPOINT of the image
  -e, --env list                       Set environment variables
      --env-file list                  Read in a file of environment variables
      --expose list                    Expose a port or a range of ports
      --gpus gpu-request               GPU devices to add to the container ('all' to pass all GPUs)
      --group-add list                 Add additional groups to join
      --health-cmd string              Command to run to check health
      --health-interval duration       Time between running the check (ms|s|m|h) (default 0s)
      --health-retries int             Consecutive failures needed to report unhealthy
      --health-start-period duration   Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)
      --health-timeout duration        Maximum time to allow one check to run (ms|s|m|h) (default 0s)
      --help                           Print usage
  -h, --hostname string                Container host name
      --init                           Run an init inside the container that forwards signals and reaps processes
  -i, --interactive                    Keep STDIN open even if not attached
      --ip string                      IPv4 address (e.g., 172.30.100.104)
      --ip6 string                     IPv6 address (e.g., 2001:db8::33)
      --ipc string                     IPC mode to use
      --isolation string               Container isolation technology
      --kernel-memory bytes            Kernel memory limit
  -l, --label list                     Set meta data on a container
      --label-file list                Read in a line delimited file of labels
      --link list                      Add link to another container
      --link-local-ip list             Container IPv4/IPv6 link-local addresses
      --log-driver string              Logging driver for the container
      --log-opt list                   Log driver options
      --mac-address string             Container MAC address (e.g., 92:d0:c6:0a:29:33)
  -m, --memory bytes                   Memory limit
      --memory-reservation bytes       Memory soft limit
      --memory-swap bytes              Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --memory-swappiness int          Tune container memory swappiness (0 to 100) (default -1)
      --mount mount                    Attach a filesystem mount to the container
      --name string                    Assign a name to the container
      --network network                Connect a container to a network
      --network-alias list             Add network-scoped alias for the container
      --no-healthcheck                 Disable any container-specified HEALTHCHECK
      --oom-kill-disable               Disable OOM Killer
      --oom-score-adj int              Tune host's OOM preferences (-1000 to 1000)
      --pid string                     PID namespace to use
      --pids-limit int                 Tune container pids limit (set -1 for unlimited)
      --platform string                Set platform if server is multi-platform capable
      --privileged                     Give extended privileges to this container
  -p, --publish list                   Publish a container's port(s) to the host
  -P, --publish-all                    Publish all exposed ports to random ports
      --pull string                    Pull image before running ("always"|"missing"|"never") (default "missing")
      --read-only                      Mount the container's root filesystem as read only
      --restart string                 Restart policy to apply when a container exits (default "no")
      --rm                             Automatically remove the container when it exits
      --runtime string                 Runtime to use for this container
      --security-opt list              Security Options
      --shm-size bytes                 Size of /dev/shm
      --sig-proxy                      Proxy received signals to the process (default true)
      --stop-signal string             Signal to stop a container (default "SIGTERM")
      --stop-timeout int               Timeout (in seconds) to stop a container
      --storage-opt list               Storage driver options for the container
      --sysctl map                     Sysctl options (default map[])
      --tmpfs list                     Mount a tmpfs directory
  -t, --tty                            Allocate a pseudo-TTY
      --ulimit ulimit                  Ulimit options (default [])
  -u, --user string                    Username or UID (format: <name|uid>[:<group|gid>])
      --userns string                  User namespace to use
      --uts string                     UTS namespace to use
  -v, --volume list                    Bind mount a volume
      --volume-driver string           Optional volume driver for the container
      --volumes-from list              Mount volumes from the specified container(s)
  -w, --workdir string                 Working directory inside the container
  1. 查看容器元数据
docker container inspect 容器ID
  1. 使用 ubuntu 镜像新建一个容器,参数为以命令行模式进入该容器.
docker run -it ubuntu /bin/bash
  1. 从容器拷贝文件到主机
docker cp 容器ID:容器内文件路径 主机路径
  1. 启动容器与停止容器
# 启动容器
docker start 容器ID


# 重启容器
docker restart 容器ID

# 停止容器
docker stop 容器ID

#杀死容器
docker kill 容器ID
  1. 退出容器
# 容器停止并退出
exit

# 容器不停止退出
ctrl+P+Q
  1. 进入当前正在运行的容器
#以打开新终端的方式进入容器
docker exec -it 容器ID /bin/bash

# docker exec命令可选项
Options:
  -d, --detach               Detached mode: run command in the background
      --detach-keys string   Override the key sequence for detaching a container
  -e, --env list             Set environment variables
      --env-file list        Read in a file of environment variables
  -i, --interactive          Keep STDIN open even if not attached
      --privileged           Give extended privileges to the command
  -t, --tty                  Allocate a pseudo-TTY
  -u, --user string          Username or UID (format: <name|uid>[:<group|gid>])
  -w, --workdir string       Working directory inside the container

# 以进入正在执行的终端进入容器
docker attach 容器ID

# docker attach命令可选项
Options:
      --detach-keys string   Override the key sequence for detaching a container
      --no-stdin             Do not attach STDIN
      --sig-proxy            Proxy all received signals to the process (default true)
  1. 从容器内拷贝文件到主机
docker cp 容器ID:容器内文件路径 主机文件路径

# docker cp命令可选项
Options:
  -a, --archive       Archive mode (copy all uid/gid information)
  -L, --follow-link   Always follow symbol link in SRC_PATH
  1. 容器间数据文件同步
docker run -it --name 容器名1 --volumes-from 容器名2 
  1. 删除容器
# 删除容器
docker rm 容器ID

# docker rm命令可选项
Options:
  -f, --force     Force the removal of a running container (uses SIGKILL)
  -l, --link      Remove the specified link
  -v, --volumes   Remove anonymous volumes associated with the container
  1. 列出所有运行的容器
# 列出所有运行的容器
docker ps

# docker ps命令可选项
Options:
  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show n last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display container IDs
  -s, --size            Display total file sizes
  1. 发布镜像
# 登录 dockerhub
docker login
# 发布镜像
docker push 作者名/镜像名:Tag标签

docker 更新容器

docker-compose down 

docker-compose pull

docker-compose up -d 
# prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像.
docker image prune

docker 卸载容器

# 停止容器,此时不会删除映射到本地的数据
docker stop 容器名或者容器ID
# 删除容器
docker rm -f 容器名或者容器ID
# 删除容器镜像
docker rmi 容器镜像
# 完全删除映射到本地的数据
rm -rf 容器目录