docker基础:容器生命周期管理命令

Blog:博客园 个人

容器生命周期管理

  • docker run:创建一个新的容器并运行一个命令;
  • docker start/stop/restart:启停容器;
  • docker kill:杀掉运行中的容器;
  • docker rm:删除一个或多个容器;
  • docker pause/unpause:暂停或恢复容器中的所有进程;
  • docker create:创建一个新的容器但不启动它;
  • docker exec:在运行的容器中执行命令;
  • docker update:更新一个或多个容器的配置;

运行容器

语法如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Options:
      --add-host list                         Add a custom host-to-IP mapping (host:ip) (default [])
  -a,--attach list                           Attach to STDIN,STDOUT or STDERR (default [])
      --blkio-weight uint16                   Block IO (relative weight),between 10 and 1000,or 0 to disable (default 0)
      --blkio-weight-device weighted-device   Block IO weight (relative device weight) (default [])
      --cap-add list                          Add Linux capabilities (default [])
      --cap-drop list                         Drop Linux capabilities (default [])
      --cgroup-parent string                  Optional parent cgroup for the container
      --cidfile string                        Write the container ID to the file
      --cpu-count int                         CPU count (Windows only)
      --cpu-percent int                       CPU percent (Windows only)
      --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 (default 0.000)
      --cpuset-cpus string                    CPUs in which to allow execution (0-3,1)
      --cpuset-mems string                    MEMs in which to allow execution (0-3,1)
      --credentialspec string                 Credential spec for managed service account (Windows only)
  -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 (default [])
      --device-read-bps throttled-device      Limit read rate (bytes per second) from a device (default [])
      --device-read-iops throttled-device     Limit read rate (IO per second) from a device (default [])
      --device-write-bps throttled-device     Limit write rate (bytes per second) to a device (default [])
      --device-write-iops throttled-device    Limit write rate (IO per second) to a device (default [])
      --disable-content-trust                 Skip image verification (default true)
      --dns list                              Set custom DNS servers (default [])
      --dns-option list                       Set DNS options (default [])
      --dns-search list                       Set custom DNS search domains (default [])
      --entrypoint string                     Overwrite the default ENTRYPOINT of the image
  -e,--env list                              Set environment variables (default [])
      --env-file list                         Read in a file of environment variables (default [])
      --expose list                           Expose a port or a range of ports (default [])
      --group-add list                        Add additional groups to join (default [])
      --health-cmd string                     Command to run to check health
      --health-interval duration              Time between running the check (ns|us|ms|s|m|h) (default 0s)
      --health-retries int                    Consecutive failures needed to report unhealthy
      --health-timeout duration               Maximum time to allow one check to run (ns|us|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
      --init-path string                      Path to the docker-init binary
  -i,--interactive                           Keep STDIN open even if not attached
      --io-maxbandwidth string                Maximum IO bandwidth limit for the system drive (Windows only)
      --io-maxiops uint                       Maximum IOps limit for the system drive (Windows only)
      --ip string                             Container IPv4 address (e.g. 172.30.100.104)
      --ip6 string                            Container IPv6 address (e.g. 2001:db8::33)
      --ipc string                            IPC namespace to use
      --isolation string                      Container isolation technology
      --kernel-memory string                  Kernel memory limit
  -l,--label list                            Set meta data on a container (default [])
      --label-file list                       Read in a line delimited file of labels (default [])
      --link list                             Add link to another container (default [])
      --link-local-ip list                    Container IPv4/IPv6 link-local addresses (default [])
      --log-driver string                     Logging driver for the container
      --log-opt list                          Log driver options (default [])
      --mac-address string                    Container MAC address (e.g. 92:d0:c6:0a:29:33)
  -m,--memory string                         Memory limit
      --memory-reservation string             Memory soft limit
      --memory-swap string                    Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --memory-swappiness int                 Tune container memory swappiness (0 to 100) (default -1)
      --name string                           Assign a name to the container
      --network string                        Connect a container to a network (default "default")
      --network-alias list                    Add network-scoped alias for the container (default [])
      --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)
      --privileged                            Give extended privileges to this container
  -p,--publish list                          Publish a container's port(s) to the host (default [])
  -P,--publish-all                           Publish all exposed ports to random ports
      --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 (default [])
      --shm-size string                       Size of /dev/shm,default value is 64MB
      --sig-proxy                             Proxy received signals to the process (default true)
      --stop-signal string                    Signal to stop a container,SIGTERM by default (default "SIGTERM")
      --stop-timeout int                      Timeout (in seconds) to stop a container
      --storage-opt list                      Storage driver options for the container (default [])
      --sysctl map                            Sysctl options (default map[])
      --tmpfs list                            Mount a tmpfs directory (default [])
  -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 (default [])
      --volume-driver string                  Optional volume driver for the container
      --volumes-from list                     Mount volumes from the specified container(s) (default [])
  -w,--workdir string                        Working directory inside the container

例子:

# 使用镜像nginx:latest,以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data
docker run -p 80:80 -v /data:/data -d nginx:latest

启停容器

语法如下:

# 启动已经被停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]

Options:
  -a,--attach               Attach STDOUT/STDERR and forward signals
      --detach-keys string   Override the key sequence for detaching a container
  -i,--interactive          Attach container's STDIN

# 停止运行中的容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]

Options:
  -t,--time int   Seconds to wait for stop before killing it (default 10)

# 重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]

Options:
  -t,--time int   Seconds to wait for stop before killing the container (default 10)

杀掉容器

语法如下:

docker kill [OPTIONS] CONTAINER [CONTAINER...]

Options:
  -s,--signal string   Signal to send to the container (default "KILL")

删除容器

语法如下:

docker rm [OPTIONS] CONTAINER [CONTAINER...]

Options:
  -f,--force     Force the removal of a running container (uses SIGKILL)
  -l,--link      Remove the specified link
  -v,--volumes   Remove the volumes associated with the container

暂停或恢复容器中所有的进程

语法如下:

# 暂停容器中所有的进程
docker pause CONTAINER [CONTAINER...]

# 恢复容器中所有的进程
docker unpause CONTAINER [CONTAINER...]

创建一个新的容器但不启动它

语法同docker run

在容器中执行命令

语法如下:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

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 (default [])
      --help                 Print usage
  -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>])

更新一个或多个容器的配置

语法如下:

docker update [OPTIONS] CONTAINER [CONTAINER...]

Options:
      --blkio-weight uint16         Block IO (relative weight),or 0 to disable (default 0)
      --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 the CPU real-time period in microseconds
      --cpu-rt-runtime int          Limit the CPU real-time runtime in microseconds
  -c,--cpu-shares int              CPU shares (relative weight)
      --cpuset-cpus string          CPUs in which to allow execution (0-3,1)
      --cpuset-mems string          MEMs in which to allow execution (0-3,1)
      --help                        Print usage
      --kernel-memory string        Kernel memory limit
  -m,--memory string               Memory limit
      --memory-reservation string   Memory soft limit
      --memory-swap string          Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --restart string              Restart policy to apply when a container exits

相关文章

文章浏览阅读8.8k次,点赞2次,收藏7次。本文介绍Docker Com...
文章浏览阅读1.5w次,点赞7次,收藏76次。原网提供的教程需要...
文章浏览阅读940次,点赞20次,收藏20次。通过 docker run 命...
文章浏览阅读1k次,点赞20次,收藏20次。Podman 是一个开源的...
文章浏览阅读2.1k次。请注意,这些命令需要在 Docker 主机上...
文章浏览阅读1.1k次,点赞37次,收藏40次。nacos搭建集群连接...