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

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

  • 一、帮助启动类命令
    • 启动Docker
    • 停止Docker
    • 重启Docker
    • 查看Docker状态
    • 开机启动
    • 查看docker概要信息
    • 查看docker总体帮助文档
    • 查看docker命令帮助文档
  • 二、镜像命令
    • 列出本地主机上的镜像
      • 运行示例
      • 返回说明
      • 操作参数
    • 搜索仓库里的某个镜像
      • 运行示例
      • 返回说明
      • 操作参数
    • 拉取镜像
      • 运行示例
    • 查看镜像/容器/数据卷所占的空间
      • 运行示例
      • 返回说明
    • 删除镜像
      • 运行示例
    • 运行镜像
      • 运行示例
      • 操作参数
    • 列出当前所有正在运行的容器
      • 运行示例
      • 操作参数
    • 退出容器
      • run进去容器,exit退出,容器停止
      • run进去容器,ctrl+p+q退出,容器不停止
    • 启动已经停止的的容器
    • 启动已经停止的的容器
    • 重启容器
    • 停止容器
    • 强制停止容器
    • 删掉已停止的容器
    • 一次性删除多个容器实例
      • 操作参数
    • 检查容器文件结构修改
      • 运行示例
    • 杀掉运行中的容器
      • 运行示例
      • 参数说明
    • 暂停/恢复容器中所有进程
      • 运行示例
    • 容器重命名
      • 运行示例
  • 三.其他常用
    • 启动守护式容器(后台服务器)
    • 查看容器日志
      • 运行示例
      • 操作参数
    • 查看容器内运行的进程
    • 查看容器内部细节
      • 操作参数
    • 重新进入容器(进入正在运行的容器并以命令行交互)
      • 运行示例
      • 操作参数
    • 从容器内拷贝文件到主机
      • 操作参数
    • 导出容器
      • 运行示例
      • 操作参数
  • 导入容器

一、帮助启动类命令

启动Docker

docker:systemctl start docker

停止Docker

systemctl stop docker

重启Docker

systemctl restart docker

查看Docker状态

systemctl status docker

开机启动

systemctl enable docker

查看docker概要信息

docker info

查看docker总体帮助文档

docker--help

查看docker命令帮助文档

docker 具体命令 -help

二、镜像命令

列出本地主机上的镜像

docker images

运行示例

[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 表示最新版本

操作参数

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

搜索仓库里的某个镜像

docker search [镜像名称]

运行示例

[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:是否是自动构建的

操作参数

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

拉取镜像

docker pull [镜像名称]:[镜像标签/TAG]

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

运行示例

[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 ~]# 

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

docker system df

运行示例

[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 可回收的空间大小

删除镜像

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

运行示例

[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 ~]# 

运行镜像

docker run [操作参数] [镜像名称]:[镜像标识] [命令][参数]
docker run [操作参数] [镜像ID] [命令][参数]

运行示例

[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

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

 docker ps [操作参数]

运行示例

[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退出,容器停止

exit

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

按键 Ctrl+p+q

启动已经停止的的容器

docker start [容器ID/容器名称]

启动已经停止的的容器

docker start [容器ID/容器名称]

重启容器

docker restart [容器ID/容器名称]

停止容器

docker stop [容器ID/容器名称]

强制停止容器

docker kill [容器ID/容器名称]

删掉已停止的容器

docker rm [容器ID/容器名称]

一次性删除多个容器实例

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 直接删除,不提示确认选项

检查容器文件结构修改

docker diff [容器名]
docker container diff [容器名]

运行示例

假设容器NAMES为web

docker diff web

杀掉运行中的容器

docker kill [操作参数] [容器名] [CONTAINER...] 

运行示例

假设容器NAMES为web

docker diff web

参数说明

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

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

运行示例

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

容器重命名

运行示例

docker rename [容器名/容器ID] [新的容器名]
docker container rename [容器名/容器ID] [新的容器名]

三.其他常用

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

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

查看容器日志

docker logs [操作参数] [容器ID]

运行示例

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

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 显示某个时间段前的日志

查看容器内运行的进程

docker top [容器ID]

查看容器内部细节

docker inspect [容器ID]
docker container inspect [容器ID]

操作参数

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

查看一个名称为web的容器

docker inspect web

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

docker inspect --format='{{.NetworkSettings.IPAddress}}' web

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

docker inspect -f {{.Mounts}} web

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

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

运行示例

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

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: uid>[:
-w, --workdir string 指定容器的工作目录
  • attach 直接进入容器启动命令的终端,不会启动新的进程
    用exit退出,会导致容器的停止。
docker attach -it 容器ID bashShell
参数 说明 格式
–detach-keys string 指定分离容器的键盘序列
–no-stdin 不连接标准输入
–sig-proxy –sig-proxy=true 不会将收到的信号重定向到进程。因此,例如,如果您附加到一个容器并按 Ctrl+C,它不会影响容器的进程,只会影响您的控制台。

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

docker attach --sig-proxy=false mytest

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

docker attach --no-stdin mytest

从容器内拷贝文件到主机

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

操作参数

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

导出容器

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

运行示例

docker export CONTAINER ID > NAME.tar
docker export -o NAME.tar CONTAINER ID

操作参数

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

导入容器

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

你可能感兴趣的:(Docker,docker,容器)