说明
docker cli 命令大全
docker -v
查看当前docker的版本信息
docker --help
可以查看当前docker支持的所有命令
docker COMMAND --help
可以查看子命令的帮助信息
说明:不同版本的docker,支持的命令及参数可能有不同
以下命令在如下版本测试:
C:\Users\Administrator>docker version
Client:
Cloud integration: v1.0.35
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:53:15 2023
OS/Arch: windows/amd64
Context: default
Server: Docker Desktop 4.21.1 (114176)
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:52:17 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
容器生命周期管理
命令 | 功能 | 语法 |
常用
|
---|---|---|---|
|
从镜像创建一个容器并运行该容器 |
|
以后台模式运行容器;
指定端口映射,格式:
;
以交互模式运行容器;
为容器分配一个伪终端,通常与
组合使用
设置环境变量,设置多个环境变量使用多个
参数实现;
从指定文件读入环境变量,文件每行是key=value,即代表一个环境变量;
给容器起个名字,如果没有指定,则随机分配一个名字;
绑定一个卷,即 将主机目录与容器内的目录做映射,格式:
指定容器内的工作目录 |
|
启动一个或多个已停止的容器 |
|
将容器的标准输出和标准错误连接到当前终端,使得可以在终端上查看容器的输出;
将容器的标准输入连接到当前终端,可以与容器进行交互 |
|
停止一个或多个运行中的容器 |
|
向容器中的进程发送信号,默认为
;
杀死容器中进程的超时时间,默认是10s 在正常情况下,Docker 会向容器中的进程发送 SIGTERM 信号,要求其正常退出。如果在
参数指定的时间内,容器中的进程没有正常退出,则 Docker 会发送 SIGKILL 信号强制杀死容器中的进程 |
|
重启一个或多个容器 |
|
向容器中的进程发送信号,默认为
;
杀死容器中进程的超时时间 在正常情况下,Docker 会向容器中的进程发送 SIGTERM 信号,要求其正常退出。如果在
参数指定的时间内,容器中的进程没有正常退出,则 Docker 会发送 SIGKILL 信号强制杀死容器中的进程 |
|
杀死一个或多个运行中的容器 |
|
发送给容器中进程的信号,不提供该参数,则默认发送
信号,即强制终止正在运行的容器(可能会导致数据丢失或其他不良影响) 信号也可以用其编号代替,如:
,则可使用
,但是不建议用编号,因为不同操作系统编号可能不同 在
系统中,可以通过
查看所有信号说明和用途。 |
|
删除一个或多个容器 |
|
通过
信号强制删除运行中的容器;
移除容器间的网络连接,而非容器本身;
删除与容器关联的卷 |
|
删除所有停止状态的容器 |
|
提供过滤条件,如
过滤出指定时间之前创建的容器;
强制删除,不再确认 |
|
暂停容器中所有的进程 |
|
无
|
|
恢复容器中所有的进程 |
|
无
|
|
创建一个新的容器但不启动它 |
|
参数用法同
,区别在于创建容器后是否运行 |
|
重命名容器 |
|
注意:容器在重命名时不能处于运行状态,如果容器正在运行,需要先使用
命令停止容器,然后再使用
命令重命名容器 |
|
更新容器配置,如CPU、内存、重启策略等 |
|
为一个容器的 CPU 时间片配额相对权重,可以是浮点数,默认值为0
设置容器的 CPU 分配限制,默认值为0,表示没有限制;
设置容器的内存限制,可以是数字或数字和单位的组合。例如,
或
都表示容器的内存限制为2GB;
:设置容器退出后的重启策略。可选的值包括
(不重启)、
(指定最大重试次数,失败后重新启动)、
(总是重启容器)等等 update命令只能修改容器的配置项,不能修改镜像的配置。如果需要修改镜像的配置,需要使用docker commit命令创建新的镜像 |
|
在运行的容器中执行命令 |
|
以后台模式运行容器;
以交互模式运行容器;
为容器分配一个伪终端,通常与
组合使用
设置环境变量,设置多个环境变量使用多个
参数实现;
从指定文件读入环境变量,文件每行是key=value,即代表一个环境变量;
指定容器内的工作目录 |
容器操作
命令 | 功能 | 语法 |
常用
|
---|---|---|---|
|
查询已创建的容器 |
|
查询所有容器,默认仅显示运行中的容器;
使用指定的条件过滤查询内容,如
查询所有停止状态的容器;
指定返回值的格式,如:table、json等等,默认 table;
查询最近创建的n个容器(所有状态的);
查询最近创建的1个容器(所有状态的);
仅显示容器IDs;
显示总文件大小 |
|
获取容器或镜像的底层信息 |
|
按指定的模板返回信息;
如果是容器,返回总文件大小;
为指定类型返回json数据,如
获取类型为容器,名为webapp的容器详细信息 |
|
获取运行中的容器进程信息 |
|
表示可选的
命令选项,用于指定要列出的进程的详细信息(注意这里的
不是
,而是Linux中的
命令)
指定显示进程的 PID、用户名、CPU 占用率、内存占用率和命令名称 |
|
使用户进入正在运行的容器终端 |
|
指定从容器中分离的键序列,默认为
,如
,则
组合键代替默认的
来终止mycontainer容器的终端连接;
不将标准输入流输入到终端中
将附加的信号发送到容器的进程(默认为true) |
|
从服务器获取实时事件 |
|
使用指定条件对查询结果进行过滤
查询指定日期或时间后产生的事件,string为秒级的时间戳或者”2023-08-05″类似格式的日期
查询指定日期或时间前产生的事件,string为秒级的时间戳或者”2023-08-05″类似格式的日期 |
|
获取同期日志信息 |
|
跟踪日志输出;
显示指定时间或日期之后的日志 (e.g. “2023-08-04”) or relative (e.g. “42m” for 42 minutes)
显示最近n条日志记录(默认是all);
显示时间戳信息;
显示指定时间或日期之前的日志 (e.g. “2023-08-04T20:36:55.997861800Z”) or relative (e.g. “1h” for 1 hour) 注意:logs仅能显示标准输出、标准错误日志信息 |
|
阻塞容器直到容器停止运行,然后返回退出代码 |
|
无
|
|
将文件系统作为一个tar归档文件导出到STDOUT |
|
将输出写到文件,代替STDOUT |
|
查看容器的端口映射信息 |
|
输出的端口映射信息格式:
是容器内部的端口号,
是协议类型(如 tcp 或 udp),
是主机的 IP 地址,
是主机上映射的端口号 如果想要查看本地主机上的端口和容器内部的端口之间的映射关系,可以使用
命令,方法如下:
|
|
显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等 |
|
显示所有容器的资源使用情况,无该参数,则仅显示运行状态的;
指定返回值的模板文件,如table(默认)、json等等;
仅展示当前资源使用情况,不实时更新;
不截断输出 输出详情介绍:
与
: 容器 ID 与名称;
与
: 容器使用的 CPU 和内存的百分比;
/
: 容器正在使用的总内存,以及允许使用的内存总量;
: 容器通过其网络接口发送和接收的数据量;
: 容器从主机上的块设备读取和写入的数据量;
: 容器创建的进程或线程数 |
容器rootfs命令
命令 | 功能 | 语法 |
常用
|
---|---|---|---|
|
用于将容器的当前状态(文件系统、配置等)保存为一个新的镜像 |
|
:指定新镜像的作者信息;
:在新镜像上执行指定的 Dockerfile 命令;
:在新镜像上添加指定的提交信息;
:在保存容器状态时暂停容器(默认是true)
是指要保存状态的容器的 ID 或者名称
和
是新镜像的仓库名和标签 |
|
用于容器和主机之间的文件或目录数据拷贝 |
|
使用’-‘作为源文件从stdin中读取tar存档文件,并将其解压缩到容器中的目录目标 使用’-‘作为目标,流式传输文件的tar存档容器源到标准输出
在复制文件时保留文件的元数据,例如文件权限、所有者、组、时间戳等;
在复制文件时跟踪符号链接,并将其内容复制到目标位置 如果不使用
参数,则在复制文件时会忽略符号链接,复制的是该符号链接指向的原始文件;
拷贝过程中禁止输出进度。如果没有附加终端,则自动抑制进度输出 |
|
检查容器内文件或目录的更改情况 |
|
无
该命令可以比较容器启动后对文件系统执行的更改与初始镜像的文件系统之间的差异 |
镜像仓库
命令 | 功能 | 语法 |
常用
|
---|---|---|---|
|
登陆到一个Docker镜像仓库 |
|
用户密码
从标准输入获取密码
用户名
如果不指定,默认为Docker hub 官方仓库 |
|
登出一个Docker镜像仓库 |
|
如果不指定,默认为Docker hub 官方仓库 |
|
从镜像仓库中拉取或者更新指定镜像 | `docker pull [OPTIONS] NAME[:TAG | @DIGEST]` |
|
上传镜像到镜像仓库 |
|
上传指定镜像的所有tag版本的镜像
跳过镜像数字签名校验,默认是true
简化镜像上传过程中输出信息; |
|
搜索
仓库镜像 |
|
对查询结果进行过滤 如:
表示过滤出stars数大于等于100的镜像;
表示过滤出官方的镜像;
表示过滤出自动构建的镜像;
按模板输出查询结果
限制输出结果数量
显示完整信息 |
本地镜像管理
命令 | 功能 | 语法 |
常用
|
---|---|---|---|
|
列出本地镜像 |
|
列出所有镜像(含中间映像层,默认情况下,过滤掉中间映像层)
显示镜像的digests信息;
使用指定条件对结果进行过滤显示;如:
:查找具有指定镜像名称
的镜像;
按指定模板显示输出信息;
输出信息不截断;
仅显示镜像IDs |
|
删除本地镜像 |
|
强制删除;
不移除该镜像的过程镜像,默认移除; |
|
删除所有未使用的镜像 |
|
删除所有未使用的镜像,而不仅是挂起状态的
使用指定条件过滤出要删除的镜像,如
删除指定时间之前创建的镜像
强制删除,不再确认 |
|
给镜像打tag标签 |
|
类似与git的tag功能
如果不指定,默认为latest;
为
镜像标记两个新的标签:
和
|
|
构建镜像 |
|
指定构建镜像使用的dockerfile文件,这个文件可以是本地的或者URL获得的或者STDIN标准输入获得的;
设置镜像使用的网络模式,默认为bridge;
忽略构建缓存;
构建镜像时总是尝试去拉取最新版本的基础镜像;
简化构建过程的输出信息,构建成功后返回镜像id;
给生成的镜像设置名称和tag标签,格式为
,tag省略,则默认为latest |
|
查看镜像历史 |
|
指定输出内容的格式;
以可读的格式打印镜像大小和日期,默认为true;
不截断输出信息;
仅输出镜像IDs |
|
将指定镜像保存为tar归档 |
|
指定归档信息保存的文件,默认是输出到
|
|
从tar归档或STDIN导入镜像 |
|
指定tar归档文件进行导入,默认是从
导入;
简化导入过程中的输出信息 |
|
用于将文件系统打包成镜像,并导入到 Docker 镜像库中 |
|
将本地文件系统、tar 文件以及远程 URL 路径中的文件系统、STDIN等导入到 Docker 镜像库中,生成新的镜像
为导入的镜像设置dockerfile中的指令,如
;
为创建的镜像,提交说明信息;
用于指定构建镜像的目标平台 |
Docker 信息
命令 | 功能 | 语法 |
常用
|
---|---|---|---|
|
查看docker客户端和服务端信息 |
|
按指定模板显示输出信息; 默认为pretty格式,还支持json格式、Go template格式 |
|
查看docker版本信息 |
|
按指定模板显示输出信息; 默认为pretty格式,还支持json格式
Kubernetes 配置文件信息 |
最后
由于个人能力有限,以上命令总结难免有理解或翻译的错误,更详细、更准确的,还请参考官方帮助文档:
Use the Docker command line | Docker Documentation
版权声明:本文为B11050729原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。