【Docker】从零开始:7.Docker命令:容器命令及参数详解

【Docker】从零开始:7.帮助启动类命令

一、帮助启动类命令

启动Docker

bash 复制代码
docker:systemctl start docker

停止Docker

bash 复制代码
systemctl stop docker

重启Docker

bash 复制代码
systemctl restart docker

查看Docker状态

bash 复制代码
systemctl status docker

开机启动

bash 复制代码
systemctl enable docker

查看docker概要信息

bash 复制代码
docker info

查看docker总体帮助文档

bash 复制代码
docker--help

查看docker命令帮助文档

bash 复制代码
docker 具体命令 -help

二、镜像命令

列出本地主机上的镜像

bash 复制代码
docker images

运行示例

bash 复制代码
[root@docker ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   2 years ago   13.3kB
[root@docker ~]# 

返回说明

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签版本号
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
latest 表示最新版本

操作参数

bash 复制代码
docker images -a
docker images -q
参数 说明
-a 列出本地所有的镜像(含历史映像层)
-q 只显示镜像ID

搜索仓库里的某个镜像

bash 复制代码
docker search [镜像名称]

运行示例

bash 复制代码
[root@docker ~]# docker search redis
NAME                                DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
redis                               Redis is an open source key-value store that...   12490     [OK]       
redislabs/redisearch                Redis With the RedisSearch module pre-loaded...   61                   
redislabs/redisinsight              RedisInsight - The GUI for Redis                 94                   
redis/redis-stack-server            redis-stack-server installs a Redis server w...   60                   
redis/redis-stack                   redis-stack installs a Redis server with add...   82                   
redislabs/rebloom                   A probablistic datatypes module for Redis        25                   [OK]
redislabs/redis                     Clustered in-memory database engine compatib...   40                   
redislabs/rejson                    RedisJSON - Enhanced JSON data type processi...   53                   
redislabs/redisgraph                A graph database module for Redis                26                   [OK]
redislabs/redismod                  An automated build of redismod - latest Redi...   41                   [OK]
redislabs/redistimeseries           A time series database module for Redis          12                   
redislabs/operator                                                                   7                    
redislabs/operator-internal         This repository contains pre-released versio...   1                    
redislabs/redis-py                                                                   5                    
redislabs/redis-webcli              A tiny Flask app to provide access to Redis ...   5                    [OK]
redislabs/redisgears                An automated build of RedisGears                 4                    
redislabs/k8s-controller-internal                                                    0                    
redislabs/k8s-controller                                                             2                    
redislabs/memtier_benchmark         Docker image to run memtier_benchmark            0                    
redislabs/ng-redis-raft             Redis with redis raft module                     0                    
redislabs/redisai                                                                    6                    
redislabs/olmtest                   Test artefact for OLM CSV                        1                    
bitnami/redis                       Bitnami Redis Docker Image                       271                  [OK]
redislabs/olm-bundle                                                                 0                    
redislabs/redisml                   A Redis module that implements several machi...   3                    [OK]

返回说明

  • NAME:表示镜像名称
  • DESCRIPTION:镜像说明
  • STARS:镜像的点赞数
  • OFFICIAL:是否是官方的
  • AUTOMATED:是否是自动构建的

操作参数

bash 复制代码
docker search  --limit 5 [镜像名称]
参数 说明
--limit 只列出N个镜像,默认25个

拉取镜像

bash 复制代码
docker pull [镜像名称]:[镜像标签/TAG]

没有镜像标签(TAG)就是最新版等价于docker pull [镜像名称]:latest

运行示例

bash 复制代码
[root@docker ~]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete 
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
[root@docker ~]# docker pull mysql:5.6
5.6: Pulling from library/mysql
35b2232c987e: Pull complete 
fc55c00e48f2: Pull complete 
0030405130e3: Pull complete 
e1fef7f6a8d1: Pull complete 
1c76272398bb: Pull complete 
f57e698171b6: Pull complete 
f5b825b269c0: Pull complete 
dcb0af686073: Pull complete 
27bbfeb886d1: Pull complete 
6f70cc868145: Pull complete 
1f6637f4600d: Pull complete 
Digest: sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Status: Downloaded newer image for mysql:5.6
docker.io/library/mysql:5.6
[root@docker ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
mysql         5.6       dd3b2a5dcb48   23 months ago   303MB
ubuntu        latest    ba6acccedd29   2 years ago     72.8MB
hello-world   latest    feb5d9fea6a5   2 years ago     13.3kB
[root@docker ~]# 

查看镜像/容器/数据卷所占的空间

bash 复制代码
docker system df

运行示例

bash 复制代码
[root@docker ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          3         1         375.3MB   375.3MB (99%)
Containers      2         0         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     0         0         0B        0B
[root@docker ~]# 

返回说明

TYPE 类型:Images镜像,Containers容器,Local Volumes本地卷,Build Cache构建缓存

  • TOTAL 统计数量
  • ACTIVE 正在使用的数量
  • SIZE 磁盘占用大小
  • RECLAIMABLE 可回收的空间大小

删除镜像

  • 删除单个镜像
bash 复制代码
docker rmi [镜像名称]:[镜像标签]
docker rmi [镜像ID]
  • 删除多个镜像
bash 复制代码
docker rmi [镜像1名称]:[镜像1标签] [镜像2名称]:[镜像2标签] [镜像3名称]:[镜像3标签]
docker rmi [镜像1ID] [镜像2ID] [镜像3ID]
  • 删除全部镜像
bash 复制代码
docker rmi $(docker images -qa)

运行示例

bash 复制代码
[root@docker ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
mysql         5.6       dd3b2a5dcb48   23 months ago   303MB
ubuntu        latest    ba6acccedd29   2 years ago     72.8MB
hello-world   latest    feb5d9fea6a5   2 years ago     13.3kB
[root@docker ~]# docker rmi mysql:5.6
Untagged: mysql:5.6
Untagged: mysql@sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Deleted: sha256:dd3b2a5dcb48ff61113592ed5ddd762581be4387c7bc552375a2159422aa6bf5
Deleted: sha256:8c5e3b50c7085016b7c692611fdedacba442aa0f4ccf8739f4ecf4d5e49b7d91
Deleted: sha256:2ff31bb829f16adc374868d9ef59254f394816aadfeb6b45da5bec5dcde45540
Deleted: sha256:91bcc75c6967ec46f3f19fa96f248ab3a23589788f9e2c4a1a2e032112def863
Deleted: sha256:127296d2ee30c8716069dc23d015d9ecaa1544d0a2c44712db128ae6a9cb1431
Deleted: sha256:fe36f45d1760f56c23a9957254682d74aa6e7fba931dc8f11addf75684b1aa69
Deleted: sha256:8d6550c8cb1e10f9d0cf1ee3061ecef9e2cb333cdfbf58a02ee27cf2dd5fc35a
Deleted: sha256:64e278d98d2502416e0c55646e919f0080a50f9a342b0e28aa9c43655518d3aa
Deleted: sha256:013f70419be70a06c8e4ce898f2dac82be8749cb9979d9e5b1c98dd82519f627
Deleted: sha256:c49bbc9eeced1247fcd625da3e2c2886e89b15a6264899a9ce32cd21d927912e
Deleted: sha256:031797b961ee18c70bff1f3b53cea52f643dbaef6a5ecb0e98fc2696e8b039a5
Deleted: sha256:2b83e5699838047f936a3875bcce7fe1b169983bf86785ae7519c5bc488558ae
[root@docker ~]# docker rmi ba6acccedd29
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
Deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b
[root@docker ~]# 

运行镜像

bash 复制代码
docker run [操作参数] [镜像名称]:[镜像标识] [命令][参数]
docker run [操作参数] [镜像ID] [命令][参数]

运行示例

bash 复制代码
[root@docker ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
mysql         5.6       dd3b2a5dcb48   23 months ago   303MB
ubuntu        latest    ba6acccedd29   2 years ago     72.8MB
hello-world   latest    feb5d9fea6a5   2 years ago     13.3kB
[root@docker ~]# docker rmi mysql:5.6
Untagged: mysql:5.6
Untagged: mysql@sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Deleted: sha256:dd3b2a5dcb48ff61113592ed5ddd762581be4387c7bc552375a2159422aa6bf5
Deleted: sha256:8c5e3b50c7085016b7c692611fdedacba442aa0f4ccf8739f4ecf4d5e49b7d91
Deleted: sha256:2ff31bb829f16adc374868d9ef59254f394816aadfeb6b45da5bec5dcde45540
Deleted: sha256:91bcc75c6967ec46f3f19fa96f248ab3a23589788f9e2c4a1a2e032112def863
Deleted: sha256:127296d2ee30c8716069dc23d015d9ecaa1544d0a2c44712db128ae6a9cb1431
Deleted: sha256:fe36f45d1760f56c23a9957254682d74aa6e7fba931dc8f11addf75684b1aa69
Deleted: sha256:8d6550c8cb1e10f9d0cf1ee3061ecef9e2cb333cdfbf58a02ee27cf2dd5fc35a
Deleted: sha256:64e278d98d2502416e0c55646e919f0080a50f9a342b0e28aa9c43655518d3aa
Deleted: sha256:013f70419be70a06c8e4ce898f2dac82be8749cb9979d9e5b1c98dd82519f627
Deleted: sha256:c49bbc9eeced1247fcd625da3e2c2886e89b15a6264899a9ce32cd21d927912e
Deleted: sha256:031797b961ee18c70bff1f3b53cea52f643dbaef6a5ecb0e98fc2696e8b039a5
Deleted: sha256:2b83e5699838047f936a3875bcce7fe1b169983bf86785ae7519c5bc488558ae
[root@docker ~]# docker rmi ba6acccedd29
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
Deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b
[root@docker ~]# 

操作参数

参数 说明 格式
--add-host list 向容器的 /etc/hosts 文件添加自定义主机名和 IP 映射 --add-host myhost:192.168.0.100
--annotation map Add an annotation to the container (passed through to the OCI runtime) (default map[])
-a或--attach list 附加到标准输入、标准输出或标准错误 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
--blkio-weight uint16 要使 --blkio-weight 生效,需要保证 IO 的调度算法为 CFQ,设置10-1000之间, 0为关闭 默认值为0
--blkio-weight-device list Block IO weight (relative device weight) (default [])
--cap-add list 允许提升优先级及设置其他进程的优先级的开关参数。 --cap-add=SYS_ADMIN
--cap-drop list 禁止提升优先级及设置其他进程的优先级的开关参数。 --cap-drop=SYS_ADMIN
--cgroup-parent string 容器的可选父cgroup
--cgroupns string 使用的Cgroup命名空间 (host/private) 'host'在Docker主机的Cgroup命名空间中运行容器 'private': 在其自己的私有Cgroup名称空间中运行容器 '':使用守护进程上默认cgroupns模式选项配置的cggroup名称空间(default)
--cidfile string 将 container ID 保存到 cid_file, 保存的格式为长 UUID
--cpu-period int 指定容器对 CPU 的使用要在多长时间内做一次重新分配。需要与 --cpu-quota 一起使用,默认为 100000 微妙(100 毫秒),一般这个参数值无需修改。 --cpu-period=100000
--cpu-quota int 是用来指定在这个周期内,最多可以有多少时间用来跑这个容器,单位为微秒,一般这个参数值无需修改。
--cpu-rt-period int 全局 Docker服务配置参数:指定 CPU CFS 调度器周期,需要与 --cpu-quota 一起使用,默认为 100000 微妙(100 毫秒),一般这个参数值无需修改
--cpu-rt-runtime int 全局 Docker服务配置参数:单位为微秒。确保实时调度程序的容器可以在 100000 微妙时间内运行 950000 微秒,至少有 50000 微秒可用于非实时任务,表示的时间 (缺省是 0.95 s)之后才能被重新调度。必须设置了--cap-add=sys_nice 参数才能使用。
-c,--cpu-shares int CPU权重设置,Docker会把CPU资源分成1024份,如果对一个容器设置了1024意味它独占所有CPU资源,如果多个容器同时进行了设置,那么每个容器最后会通过各自占有的百分比来分配CPU资源。当只有一个进程在运行的时候,他对一个 CPU 内核 100% 使用权,不管他有多少 CPU 份额。当和其他容器竞争 CPU 的时候,这个数值才有用。 --cpu-shares 512
--cpus decimal 指定一个容器可以使用多少可用的资源 。例如:主机有两个 CPU,而你设置 --cpus="1.5" ,那么容器可以使用 1.5 个 CPU 可以被它所使用。这个选项相当于设置 --cpu-period="100000" 和 --cpu-quota="150000"
--cpuset-cpus string 指定一个容器可以使用特定的 CPU 个数 第一个 CPU 的编号为 0,依次类推 1,2,3,4 。例如:--cpuset-cpus=0-3 使用第一,第二,第三,第四 CPU)。--cpuset-cpus=0-1,3 (使用第一,第二,第三 CPU。)
--cpuset-mems string 指定使用的内存 id (0-3,0,1)
-d或--detach 在后台运行容器并打印容器ID
--detach-keys string 指定分离容器的键盘序列
--device list 可以将主机上的设备映射到容器中,使得容器能够访问主机上的设备资源 并将主机上的/dev/ttyS0设备映射到容器中 --device=/dev/ttyS0:/dev/ttyS0
--device-cgroup-rule list 将规则添加到cgroup allowed devices列表
--device-read-bps list 限制读某个设备的比特率 --device-read-bps /dev/sda:1mb
--device-read-iops list 限制读某个设备的每秒的读写次数 --device-read-iops /dev/sda:1000
--device-write-bps list 限制写某个设备的比特率 --device-write-bps /dev/sda:1mb
--device-write-iops list 限制写某个设备的每秒的读写次数 --device-write-iops /dev/sda:1000
--disable-content-trust 忽略校验,默认开启
--dns list 指定容器使用的自定义 DNS 服务器 -dns [DNS IP]
--dns-option list 为容器的 DNS 配置添加自定义选项 --dns-option=timeout:5
--dns-search list 指定容器的 DNS 搜索域 --dns-search [网站地址]
--domainname string 设置容器NIS域
--entrypoint string 覆盖镜像默认入口点
-e或--env list 设置容器的环境变量 -e [环境变量名称]=[环境变量值]
--env-file list 在容器启动时,Docker会自动读取该文件,将其中的每个环境变量都添加到容器的环境变量中 --env-file [配置文件]
--expose list Docker 服务端容器暴露的端口号,供互联系统使用
--gpus gpu-request 要添加到容器中的GPU设备("全部"传递所有GPU
--group-add list 加入的其他组
--health-cmd string 运行健康检查命令
--health-interval duration 运行健康检查时间间隔(ms s
--health-retries int 需要报告健康检查失败次数
--health-start-period duration 健康检查重启倒计时,容器初始化的开始时间 (ms s
--health-timeout duration 健康检查运行的超时时间(ms s
--help 打印帮助并退出
-h,--hostname string 设置容器的主机名
--init 在转发信号和获取进程的容器中运行init
-i或--interactive 以交互模式运行容器,通常与 -t 同时使用
--ip string 指定IPv4地址
--ip6 string 制定IPv6地址
--ipc string IPC(POSIX/SysV IPC) 命名空间提供了相互隔离的命名共享内存,信号灯变量和消息队列。 共享内存可以提高进程数据交互速度。共享内存一般用在 database 和高性能应用(C/OpenMPI, C++/using boost libraries)上或者金融服务上。如果需要容器里面部署上述类型的应用,那么就应该在多个容器直接采取共享内存了
--isolation string 使用容器隔离技术
--kernel-memory bytes 内核内存,不会被交换到 swap 上。一般情况下,不建议修改
-l,--label list 在容器上设置标签
--label-file list 为容器添加标签,用于识别和组织容器
--link list 将容器连接到另一个容器,在两个容器之间建立网络连接。 --link [容器名称]:[自定义网络名称] [镜像名称]
--link-local-ip list 设置容器本地IPv4/IPv6链路地址
--log-driver string Docker 增加了对 json-file 型(默认)log driver 的 rotate 功能,我们可通过 max-size 和 max-file 两个 --log-opt 来配置。 --log-driver=json-file --log-opt max-size=1k --log-opt max-file=5
--log-opt list 配合Log driver 使用过
--mac-address string 绑定容器的MAC地址
-m或--memory bytes 设置容器可使用的内存限制 --memory 1g
--memory-reservation bytes 软件限制内存使用,宿主机内存空间时,可以根据设置超出一定的限制
--memory-swap bytes 等于内存和 swap 分区大小的总和,设置为 -1 时,表示 swap 分区的大小是无限的。默认单位为 byte,可以使用 K、G、M 等带单位的字符串。如果 --memory-swap 的设置值小于 --memory 的值,则使用默认值,为 --memory-swap 值的两倍
--memory-swappiness int 控制进程将物理内存交换到 swap 分区的倾向,默认系数为 60。系数越小,就越倾向于使用物理内存。值范围为 0-100。当值为100 时,表示尽量使用 swap 分区;当值为 0 时,表示禁用容器 swap 功能(这点不同于宿主机,宿主机 swappiness 设置为 0 也不保证 swap 不会被使用,默认为-1
--mount mount 与"-v"效果一致,区别是挂载主机目录使用"-v"时,如果宿主机上没有指定文件不会报错,会自动创建指定文件;当使用"-mount"时,如果宿主机中没有这个文件会报错找不到指定文件,不会自动创建指定文件。
--name string 为容器指定一个名称(可以根据需要更改为您喜欢的名称) --name [自定义容器名称]
--network network 指定容器使用的网络模式 docker network create --driver bridge [自定义网络名称] docker run --network=[自定义网络名称] [镜像名称]
--network-alias list 为容器添加网络范围的别名
--no-healthcheck 禁用任何指定容器的HEALTHCHECK
--oom-kill-disable 禁用任何指定容器的OOM Killer
--oom-score-adj int 调整主机OOM首选项(-1000 to 1000)
--pid string 设置容器pid命名空间
--pids-limit int 限制容器创建的最大进程数(设置-1表示无限制)
--platform string 获取指定系统架构 docker pull --platform= :
--privileged 给容器赋予特权,可以访问主机的设备。
-p或--publish list 将主机的端口 80 映射到容器的端口 80。这样,您可以通过访问 http://localhost 来访问 NGINX 容器中的网站。 -p [映射端口]:[容器内部端口]
-P或--publish-all 对外映射所有端口
--pull string 每次生成进程时检查注册表中是否有更新的映像 ("always","missing","never") (default "missing")
-q,--quiet Suppress the pull output
--read-only 将容器的文件系统设置为只读模式
--restart string no 默认策略,在容器退出时不重启容器 on-failure 在容器非正常退出时(退出状态非 0),才会重启容器 on-failure:3 在容器非正常退出时重启容器,最多重启 3 次 always 在容器退出时总是重启容器,当操作系统或 docker 服务重启时,该容器总能随系统启动 unless-stopped 在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器
--rm 当容器退出时如果容器关闭,则自动清除所有该容器的信息
--runtime string 指定一个--runtime string容器
--security-opt list 设置容器的安全选项,如 AppArmor 配置、Seccomp 配置等 --security-opt seccomp:unconfined
--shm-size bytes 设置容器的共享内存大小 --shm-size 2g
--sig-proxy --sig-proxy=true 不会将收到的信号重定向到进程。因此,例如,如果您附加到一个容器并按 Ctrl+C,它不会影响容器的进程,只会影响您的控制台。
--stop-signal string 覆盖镜像中的 STOPSIGNAL 设置
--stop-timeout int 覆盖镜像中的关闭超时时间
--storage-opt list 约束整个容器文件系统所占空间的最大值
--sysctl map 设置容器的内核参数 --sysctl net.ipv4.ip_forward=1
--tmpfs list 在容器内创建临时文件系统,用于存储临时数据 --tmpfs [容器内自定义目录]
-t,--tty 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--ulimit ulimit 允许容器设置的最大实时优先级,必须设置了--cap-add=sys_nice 参数才能使用,用于设置容器的资源限制,如最大打开文件数、最大进程数等 --ulimit nofile=1024:1024
-u或--user string 指定容器运行时的用户名或 UID
--userns string 使用的用户命名空间
--uts string 使用的UTS命名空间
-v,--volume list 将主机上的文件目录挂载到容器中的目录。 -v [本机目录]:[容器目录]
--volume-driver string 指定容器使用的卷驱动程序
--volumes-from list 从其他容器挂载目录。 1.创建 dbdata 容器,并含有 /data 数据卷 docker run -it --name dbdata --hostname=dbdata -v /data -d centos:8.2.2004 /bin/bash docker run -it --name web --hostname=web --volumes-from dbdata -d centos:8.2.2004 /bin/bash
-w,--workdir string 设置容器的工作目录 --workdir /app

列出当前所有正在运行的容器

bash 复制代码
 docker ps [操作参数]

运行示例

bash 复制代码
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND    CREATED        STATUS                    PORTS     NAMES
f919fcfcb7b0   hello-world    "/hello"   5 hours ago    Exited (0) 5 hours ago              fervent_benz
a4016a83fc04   hello-world    "/hello"   9 hours ago    Exited (0) 9 hours ago              hopeful_bardeen
f30bd054e899   9c7a54a9a43c   "/hello"   26 hours ago   Exited (0) 26 hours ago             mystifying_shockley

操作参数

参数 说明 格式
-a或-all 列出所有容器
-f或 --filter filter 使用过滤器来过滤输出
--format string 以go的形式格式化输出列表 docker ps -a --format {{.Names}}-{{.Image}}
-n或--last int 显示最近N个创建的容器
-l或--latest 显示最近创建的容器
--no-trunc 不对输出进行截断操作,此时可以看到完整的COMMAND,CONTAINER ID
-q或--quiet 静默模式,只显示容器编号
-s或--size 会列出容器的文件大小(容器增加的大小/容器的虚拟大小)

退出容器

run进去容器,exit退出,容器停止

bash 复制代码
exit

run进去容器,ctrl+p+q退出,容器不停止

按键 Ctrl+p+q

启动已经停止的的容器

bash 复制代码
docker start [容器ID/容器名称]

启动已经停止的的容器

bash 复制代码
docker start [容器ID/容器名称]

重启容器

bash 复制代码
docker restart [容器ID/容器名称]

停止容器

bash 复制代码
docker stop [容器ID/容器名称]

强制停止容器

bash 复制代码
docker kill [容器ID/容器名称]

删掉已停止的容器

bash 复制代码
docker rm [容器ID/容器名称]

一次性删除多个容器实例

bash 复制代码
docker rm -f $(docker ps -qa)
docker ps -qs | xargs docker rm
docker container prune

操作参数

  • docker rm 参数
参数 说明 格式
-f或--force 强制删除
-l或 --link 删除指定的链接
-v或--volumes 删除与容器关联的匿名卷
  • docker container prune 参数
参数 说明 格式
--filter filter 筛选过滤,('until=')
-f, --force 直接删除,不提示确认选项

检查容器文件结构修改

bash 复制代码
docker diff [容器名]
docker container diff [容器名]

运行示例

假设容器NAMES为web

bash 复制代码
docker diff web

杀掉运行中的容器

bash 复制代码
docker kill [操作参数] [容器名] [CONTAINER...] 

运行示例

假设容器NAMES为web

bash 复制代码
docker diff web

参数说明

参数 说明 格式
-s, --signal string 向容器发送一个信号(默认 "KILL")

暂停/恢复容器中所有进程

运行示例

  • 暂停
bash 复制代码
docker pause [容器名/容器ID]
docker container pause [容器名/容器ID]
  • 恢复
bash 复制代码
docker unpause [容器名/容器ID]
docker container unpause [容器名/容器ID]

容器重命名

运行示例

bash 复制代码
docker rename [容器名/容器ID] [新的容器名]
docker container rename [容器名/容器ID] [新的容器名]

三.其他常用

启动守护式容器(后台服务器)

  • 在大部分的场景下,我们希望 docker 的服务是在后台运行的,
    我们可以过 -d 指定容器的后台运行模式。
bash 复制代码
docker run -d [容器名]

查看容器日志

bash 复制代码
docker logs [操作参数] [容器ID]

运行示例

进入到容器中,假设容器NAMES为web

bash 复制代码
docker exec -it web /bin/bash

操作参数

参数 说明 格式
--details 显示更多的信息
-f, --follow 跟踪日志输出,类似tail -f
--since string 显示某个时间段后的日志,例:docker logs --since="2019-12-12T13:23:37" CONTAINER
--tail string 从日志末尾显示行数,默认all
-t, --timestamps 显示时间戳
--until string 显示某个时间段前的日志

查看容器内运行的进程

bash 复制代码
docker top [容器ID]

查看容器内部细节

bash 复制代码
docker inspect [容器ID]
docker container inspect [容器ID]

操作参数

参数 说明 格式
-f, --format string 指定go模板格式化输出
-s, --size 显示总文件大小
-type string 返回指定类型的JSON

查看一个名称为web的容器

bash 复制代码
docker inspect web

查看容器的内部IP,假设容器NAMES为web

bash 复制代码
docker inspect --format='{{.NetworkSettings.IPAddress}}' web

查看容器卷的关联信息,假设容器NAMES为web

bash 复制代码
docker inspect -f {{.Mounts}} web

重新进入容器(进入正在运行的容器并以命令行交互)

  • exec 是在容器中打开新的终端,并且可以启动新的进程
    用exit退出,不会导致容器的停止。
bash 复制代码
docker exec [操作参数] [容器ID] [bashShell]
docker exec [操作参数] [容器名称] [bashShell]

运行示例

进入到容器中,假设容器NAMES为web

bash 复制代码
docker exec -it web /bin/bash

操作参数

参数 说明 格式
-d, --detach 在后台运行容器并打印容器ID
--detach-keys string 指定分离容器的键盘序列
-e, --env list 设置环境变量
--env-file list 在容器启动时,Docker会自动读取该文件,将其中的每个环境变量都添加到容器的环境变量中 --env-file [配置文件]
-i, --interactive 交互模式,通常和-t选项一同使用
--privileged 赋予命令提供一些扩展权限
-t, --tty 分配一个伪tty终端,通常和-i选项一同使用
-u, --user string 指定容器用户 (format: <name uid>[:<group
-w, --workdir string 指定容器的工作目录
  • attach 直接进入容器启动命令的终端,不会启动新的进程
    用exit退出,会导致容器的停止。
bash 复制代码
docker attach -it 容器ID bashShell
参数 说明 格式
--detach-keys string 指定分离容器的键盘序列
--no-stdin 不连接标准输入
--sig-proxy --sig-proxy=true 不会将收到的信号重定向到进程。因此,例如,如果您附加到一个容器并按 Ctrl+C,它不会影响容器的进程,只会影响您的控制台。

使用ctrl+c可以直接断开连接,但是这样会导致容器退出,而且还stop了。如果想在脱离容器终端时,容器依然运行。就需要使用--sig-proxy这个参数。

bash 复制代码
docker attach --sig-proxy=false mytest

attach 到一个正在运行的容器里面,需要注意的是,attach进去之后,退出会stop容器,建议尽量用exec。加上--no-stdin就不会退出了,并且进去之后不能做任何操作

bash 复制代码
docker attach --no-stdin mytest

从容器内拷贝文件到主机

bash 复制代码
docker copy [操作参数] [容器ID]:[拷贝文件路径] [目的文件路径]

操作参数

参数 说明 格式
--o 输入内容写到文件

导出容器

bash 复制代码
docker export [操作参数] [容器ID] > [自定义文件名].tar

运行示例

bash 复制代码
docker export CONTAINER ID > NAME.tar
docker export -o NAME.tar CONTAINER ID

操作参数

参数 说明 格式
--o 输入内容写到文件

导入容器

bash 复制代码
cat [自定义文件名].tar | docker import [容器名称]:[容器标签]
参数 说明 格式
--c, --change list Apply Dockerfile instruction to the created image
-m, --message string Set commit message for imported image
--platform string et platform if server is multi-platform capable
相关推荐
kaiyuanheshang5 小时前
docker 中的entrypoint和cmd指令
运维·docker·容器·cmd·entrypoint
Python私教6 小时前
除了 Docker,还有哪些类似的容器技术?
运维·docker·容器
杨浦老苏7 小时前
开源无代码网络数据提取平台Maxun
低代码·docker·群晖
颜淡慕潇11 小时前
【K8S系列】深入解析 Kubernetes 中的 Deployment
后端·云原生·容器·kubernetes
zwm_yy13 小时前
docker-mysql
mysql·docker·容器
FinelyYang16 小时前
docker+容器+redis+minio+java jar,实现开机自启动
运维·docker·容器
hong16168819 小时前
Docker 启动和停止的精准掌舵:操控指南
docker·容器·eureka
zwm_yy19 小时前
docker创建vue镜像
docker·vue
zwm_yy19 小时前
Dockerfile && docker-compose
开发语言·docker