【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 |