【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: <name | uid>[:<group |
-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】从零开始:7.Docker命令:容器命令及参数详解
【Docker】从零开始:7.帮助启动类命令 一、帮助启动类命令启动Docker停止Docker重启Docker查看Docker状态开机启动查看docker概要信息查看docker总体帮助文档查看docker命令帮助文档 二、镜像命令列出本地主机上的镜像运行示例返回说明操作参数 搜索仓库里的某个镜像…...

Mysql 锁机制分析
整体业务代码精简逻辑如下: Transaction public void service(Integer id) {delete(id);insert(id); }数据库实例监控: 当时通过分析上游问题流量限流解决后,后续找时间又重新分析了下问题发生的根本原因,现将其总结如下…...

跟着chatgpt学习|1.spark入门
首先先让chatgpt帮我规划学习路径,使用Markdown格式返回,并转成思维导图的形式 目录 目录 1. 了解spark 1.1 Spark的概念 1.2 Spark的架构 1.3 Spark的基本功能 2.spark中的数据抽象和操作方式 2.1.RDD(弹性分布式数据集) 2…...

使用conan包 - 安装依赖项
使用conan包 - 安装依赖项 主目录 conan Using packages1 Requires2 Optional user/channel3 Overriding requirements4 Generators5 Options 本文是基于对conan官方文档Installing dependencies的翻译而来, 更详细的信息可以去查阅conan官方文档。 This section s…...
【数据库设计和SQL基础语法】--数据库设计基础--数据规范化和反规范化
一、 数据规范化 1.1 数据规范化的概念 定义 数据规范化是数据库设计中的一种方法,通过组织表结构,减少数据冗余,提高数据一致性和降低更新异常的过程。这一过程确保数据库中的数据结构遵循一定的标准和规范,使得数据存储更加高…...

复亚智能交通无人机:智慧交通解决方案大公开
城市的现代化发展离不开高效的交通管理规划。传统的交通管理系统庞大繁琐,交警在执行任务时存在安全隐患。在这一背景下,复亚智能交通无人机应运而生,成为智慧交通管理中的重要组成部分。交通无人机凭借其高灵活性、低成本、高安全性等特点&a…...

MYSQL 及 SQL 注入
文章目录 前言什么是sql注入防止SQL注入Like语句中的注入后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:Mysql 🐱👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现…...

古埃及金字塔的修建
从理论上说,古埃及人完全有能力设计并建造出充满各种奇妙细节的胡夫金字塔,但后世还是不断涌现出质疑之声,原因倒也简单,那就是胡夫金字塔实在太大了。据推算,整座金字塔使用大约230万块巨石,总质量可达约5…...
Android 13.0 系统settings系统属性控制一级菜单显示隐藏
1.概述 在13.0的系统rom定制化开发中,系统settings的一级菜单有些在客户需求中需要去掉不显示,所以就需要通过系统属性来控制显示隐藏, 从而达到控制一级菜单的显示的目的,而系统settings是通过静态加载的方式负责显示隐藏,接下来就来实现隐藏显示一级菜单的 功能实现 2.…...

STM32 寄存器配置笔记——USART配置中断接收乒乓缓存处理
一、概述 本文主要介绍如何配置USART接收中断,使用乒乓缓存的设计接收数据并将其回显在PC 串口工具上。以stm32f10为例,配置USART1 9600波特率。具体配置参考上一章节STM32 寄存器配置笔记——USART配置 打印。 乒乓缓存的设计应用场景:当后面…...
第二十一章 解读XML与JSON文件格式(工具)
XML XML tree and elements 将XML文档解析为树(tree) 我们先从基础讲起。XML是一种结构化、层级化的数据格式,最适合体现XML的数据结构就是树。ET提供了两个对象:ElementTree将整个XML文档转化为树,Element则代表着…...

Web 自动化神器 TestCafe(三)—用例编写篇
一、用例编写基本规范 1、 fixture 测试夹具 使用 TestCafe 编写测试用例,必须要先使用 fixture 声明一个测试夹具,然后在这个测试夹具下编写测试用例,在一个编写测试用例的 js 或 ts 文件中,可以声明多个测试夹具 fixture(测试…...

Redis 基本命令—— 超详细操作演示!!!
内存数据库 Redis7—— Redis 基本命令 三、Redis 基本命令(下)3.8 benchmark 测试工具3.9 简单动态字符串SDS3.10 集合的底层实现原理3.11 BitMap 操作命令3.12 HyperLogLog 操作命令3.13 Geospatial 操作命令3.14 发布/订阅命令3.15 Redis 事务 四、Re…...
Linux:centOS常用命令
CentOS是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,因此与其他基于Linux的系统共享很多相似的命令。以下是一些在CentOS上常用的命令 件和目录操作: ls: 列出目录内容。cd: 切换目录。pwd: 显示当前工作目录。mkdir: 创建目录…...

数据结构-二叉树(1)
1.树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 1.有一个特殊的结点&…...

SpringBoot——国际化
优质博文:IT-BLOG-CN 一、Spring 编写国际化时的步骤 【1】编写国际化配置文件; 【2】使用ResourceBundleMessageSource管理国际化资源文件; 【3】在页面使用ftp:message取出国际化内容; 二、SpringBoot编写国际化步骤 【1】创…...

shell 条件语句 if case
目录 测试 test测试文件的表达式 是否成立 格式 选项 比较整数数值 格式 选项 字符串比较 常用的测试操作符 格式 逻辑测试 格式 且 (全真才为真) 或 (一真即为真) 常见条件 双中括号 [[ expression ]] 用法 &…...

C语言:写一个函数,实现3*3矩阵的转置(指针)
分析: 在主函数 main 中,定义一个 3x3 的整型数组 a,并定义一个指向整型数组的指针 p。然后通过循环结构和 scanf 函数,从标准输入中读取用户输入的 3x3 矩阵的值,并存储到数组 a 中。 接下来,调用 mov…...
STL pair源码分析
STL pair源码分析 pair是STL中提供的一个简单的struct,用来处理类型不同的一对值,是非常常用的数据结构。这一对值是以public的形式暴露出来的,直接通过first和second就能访问。我们以MSVC提供的STL源码为例,分析pair的具体实现。…...

【开源】基于Vue和SpringBoot的农家乐订餐系统
项目编号: S 043 ,文末获取源码。 \color{red}{项目编号:S043,文末获取源码。} 项目编号:S043,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表
设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

WinUI3开发_使用mica效果
简介 Mica(云母)是Windows10/11上的一种现代化效果,是Windows10/11上所使用的Fluent Design(设计语言)里的一个效果,Windows10/11上所使用的Fluent Design皆旨在于打造一个人类、通用和真正感觉与 Windows 一样的设计。 WinUI3就是Windows10/11上的一个…...