程序员必掌握的docker命令

docker run

描述:

创建并运行一个新容器。 若本地没有镜像,docker run自动拉取镜像并启动容器。

示例:

shell 复制代码
# 启动nginx容器并进入/bin/sh交互式会话
$ docker run -it nginx:1.27 /bin/sh
# 后台运行nginx将容器80端口映射到宿主机8080端口,并将nginx目录挂载至容器目录/etc/nginx
$ docker run -d --name nginx -p 8080:80 -v ./nginx:/etc/nginx  nginx:1.27

参数:
-it 进入交互式tty终端
-d后台运行 (可选)
-v绑定挂载卷 (可选)
-p将容器的端口映射到主机上 (可选)
--name 分配一个容器名称 (可选)
--network 选择连接的网络 (可选)
--privileges 特权模式 (可选)

docker build

描述:

根据Dockerfile文件编译docker镜像

示例:

shell 复制代码
# 打包镜像,设置镜像tag标签并在编译环节中设置本地网络连接
$ docker build --network host -t nginx:v1 .

参数:
-t 配置镜像名:版本格式 (必选)
-f 指定Dockerfile文件目录路径(可选)
-q 编译成功并打印镜像id(可选)
--network 编译镜像时使用本地网络(可选)
--no-cache 编译时不使用本地缓存(可选)
--build-arg 在Dockerfile定义ENV变量可在参数后传值(可选)
--compress 编译时使用gzip压缩,不指定参数为tar压缩(可选)
--label 设置元数据不占用镜像层空间 (可选)

docker save

描述:

将一个或多个镜像保存tar格式归档 (通过数据流传输stdout)

示例:

shell 复制代码
# 镜像保存tar归档
$ docker save nginx:1.27 -o nginx.tar
$ docker save nginx:1.27 > nginx.tar
# 多个镜像保存tar归档
$ docker save nginx:1.26 nginx:1.27 > nginx.tar
# 镜像保存gzip归档
$ docker save nginx1.27 |gzip > nginx.gzip

参数:

-o, --output: 写入文件

docker load

描述:

加载镜像, 支持tar格式或者标准输入。

示例:

shell 复制代码
# 加载镜像 (以下两条命令意义相同)
$ docker load -i nginx.tar
$ docker load < nginx.tar
# 静默加载
$ docker load -q -i nginx.tar

参数: -i 读取tar归档文件,加载镜像
-q 静默安装,简化输出只显示加载是否成功(可选)

docker ps

描述:

查看容器列表,状态信息等。

示例:

shell 复制代码
# 查看全部容器
$ docker ps -a
$ docker ps -a --no-truc
# 查看容器状态为exited的列表
$ docker ps -a -f status=exited
# 使用json格式输出
$ docker ps -a --format '{{json .}}'
$ docker ps -a --no-trunc --format 'table {{.ID}}\t{{.Labels}}'

参数:
-a: 显示所有容器
-f: 过滤条件, 支持key=value格式
--format: 格式化输出可使用自定义模版, 支持打印json格式
-q: 只显示容器ID
-s: 显示容器文件大小
-l: 显示最近创建的容器
-n: 显示最后创建的容器数量
--no-trunc: 不进行截取输出

docker inspect

描述: 查看docker对象配置信息

示例:

shell 复制代码
# 查看配置信息
$ docker inspect 镜像或容器ID
$ docker inspect -f "{{json .Config.Labels}}" nginx:1.27
# 查看image类型的配置
$ docker inspect --type image nginx:1.27

参数:
-s: 显示容器所占的大小,字节单位
-f--format: 格式化输出可使用自定义模版, 支持打印json格式
--type: 匹配类型,比如是容器、逻辑卷等

docker exec

描述:

进入容器运行命令

示例:

shell 复制代码
# 进入容器bash命令行
$ docker exec -it nginx /bin/bash

参数:
-d: 在后台运行命令
-e: 设置环境变量
-it: 分配一个伪中断进入交互式会话
-u: 指定用户名或id
-w: 指定进入目录
--privileged: 特权模式

docker images

描述: 查看镜像列表

示例:

shell 复制代码
# 查看全部镜像
$ docker images -a
# 查看镜像ID全部信息
$ docker images -a --no-trunc 

参数:
-a: 显示全部镜像
-q: 只显示镜像ID
-f: 过滤条件, 支持key=value格式
--format: 格式化输出可使用自定义模版, 支持打印json格式
--digests: 显示镜像摘要
--no-trunc: 不进行截取输出

docker pull

描述: 从远程仓库中拉取镜像

示例:

shell 复制代码
# 向远程仓库拉取nginx
$ docker pull nginx:1.27

# 拉取arm版本nginx镜像
$ docker pull --platform arm64 nginx:1.27

参数:
-a,--all-tags: 拉取所有标签的镜像
--disable-content-trust: 拉取镜像跳过镜像验证
--platform: 指定不同架构的镜像拉取
-q: 抑制详细输出,仅显示必要信息(如镜像ID)

docker push

描述: 将镜像推送远程仓库

示例:

shell 复制代码
# 向远程仓库推送nginx镜像
$ docker push nginx:1.27

参数:
-a,--all-tags: 推送所有标签的镜像
--disable-content-trust: 跳过镜像签名
-q: 抑制详细输出,仅显示必要信息(如镜像ID)

docker stop

描述: 关闭正在运行的容器

示例:

shell 复制代码
# 关闭容器
$ docker stop 容器名或者容器ID

参数:
-t: 在终止停止前等待的秒数(默认为10)

docker rmi

描述: 移除一个或多个镜像。

示例:

shell 复制代码
# 移除镜像
$ docker rmi 容器名或容器ID (支持多个)

参数:
-f: 强制移除镜像
--no-prune: 不删除未被任何容器使用的中间层镜像

docker build

描述: 根据Dockerfile文件编译docker镜像

示例:

shell 复制代码
docker build --network host -t docker/nginx:v1 . 

参数:
-t 配置镜像名:版本格式 (必选)
-f 指定Dockerfile文件目录路径(可选)
-q编译成功并打印镜像id(可选)

--network 编译镜像时使用本地网络(可选)
--no-cache 编译时不使用本地缓存(可选)
--build-arg 在Dockerfile定义ENV变量可在参数后传值(可选)
--compress 编译时使用gzip压缩,不指定参数为tar压缩(可选)
--label 设置元数据不占用镜像层空间 (可选)

docker save

描述: 将一个或多个镜像保存tar格式归档 (通过数据流传输stdout)

示例:

shell 复制代码
镜像保存tar归档
docker save nginx:1.27 -o nginx.tar
docker save nginx:1.27 > nginx.tar
多个镜像保存tar归档
docker save nginx:1.26 nginx:1.27 > nginx.tar
镜像保存gzip归档
docker save nginx1.27 |gzip > nginx.gzip

参数:
-o, --output: 写入文件

docker load

描述: 加载镜像,支持tar格式或者标准输入

示例:

shell 复制代码
以下两条命令意义相同
docker load -i nginx.tar
docker load < nginx.tar
静默加载
docker load -q -i nginx.tar

参数:
-i 读取tar归档文件,加载镜像
-q 静默安装,简化输出只显示加载是否成功(可选)

docker ps

描述: 查看容器列表

示例:

shell 复制代码
查看全部容器
docker ps -a
docker ps -a --no-truc
查看容器状态为exited的列表
docker ps -a -f status=exited
使用json格式输出
docker ps -a --format '{{json .}}'
docker ps -a --no-trunc --format 'table {{.ID}}\t{{.Labels}}'

参数:
-a: 显示所有容器
-f: 过滤条件, 支持key=value格式
--format: 格式化输出可使用自定义模版, 支持打印json格式
-q: 只显示容器ID
-s: 显示容器文件大小
-l: 显示最近创建的容器
-n: 显示最后创建的容器数量
--no-trunc: 不进行截取输出

docker inspect

描述: 查看docker对象配置信息

示例:

shell 复制代码
查看配置信息
docker inspect 镜像或容器ID
docker inspect -f "{{json .Config.Labels}}" nginx:1.27
查看image类型的配置
docker inspect --type image nginx:1.27

参数:
-s: 显示容器所占的大小,字节单位
-f--format: 格式化输出可使用自定义模版, 支持打印json格式
--type: 匹配类型,比如是容器、逻辑卷等

docker exec

描述: 进入容器运行命令

示例:

shell 复制代码
进入容器bash命令行
docker exec -it nginx /bin/bash

参数:
-d: 在后台运行命令
-e: 设置环境变量
-it: 分配一个伪中断进入交互式会话
-u: 指定用户名或id
-w: 指定进入目录
--privileged: 特权模式

docker images

描述: 查看镜像列表

示例:

shell 复制代码
查看全部镜像
docker images -a
查看镜像ID全部信息
docker images -a --no-trunc 

参数:
-a: 显示全部镜像
-q: 只显示镜像ID
-f: 过滤条件, 支持key=value格式
--format: 格式化输出可使用自定义模版, 支持打印json格式
--digests: 显示镜像摘要
--no-trunc: 不进行截取输出

docker pull

描述: 从远程仓库中拉取镜像

示例:

shell 复制代码
docker pull nginx:1.27
拉取arm版本nginx镜像
docker pull --platform arm64 nginx:1.27

参数:
-a,--all-tags: 拉取所有标签的镜像
--disable-content-trust: 拉取镜像跳过镜像验证
--platform: 指定不同架构的镜像拉取
-q: 抑制详细输出,仅显示必要信息(如镜像ID)‌

docker push

描述: 将镜像推送远程仓库

示例:

shell 复制代码
docker push nginx:1.27

参数:
-a,--all-tags: 推送所有标签的镜像
--disable-content-trust: 跳过镜像签名
-q: 抑制详细输出,仅显示必要信息(如镜像ID)

docker stop

描述: 关闭正在运行的容器

示例:

shell 复制代码
docker stop 容器名或者容器ID

参数:
-t: 在终止停止前等待的秒数(默认为10)

docker rm

描述: 移除一个或多个容器

示例:

shell 复制代码
docker rm -f 容器名或容器ID (支持多个)

参数: -f: 强制移除正在运行的容器(使用SIGKILL)
-l: 删除指定链接的容器
-v: 删除与容器关联的匿名卷

docker rmi

描述: 移除一个或多个镜像

示例:

shell 复制代码
docker rmi 容器名或容器ID (支持多个)

参数: -f: 强制移除镜像
--no-prune: 不删除未被任何容器使用的中间层镜像

技术文章持续更新,请大家多多关注呀~~ 搜索微信公众号,关注我【 帽儿山的枪手 】

相关推荐
码码哈哈0.01 小时前
2025最新:3分钟使用Docker快速部署Redis集群
redis·docker·容器
张青贤4 小时前
k8s的pod挂载共享内存
云原生·容器·kubernetes
和计算机搏斗的每一天4 小时前
k8s术语之secret
云原生·容器·kubernetes
韩先超4 小时前
2022年8月,韩先超对中移信息进行微服务架构原理(Docker+k8s+DevOps+Go等)培训
docker·微服务·kubernetes·devops
码上飞扬5 小时前
深入理解 Docker 网络原理:构建高效、灵活的容器网络
docker
xbd_zc5 小时前
【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】
docker·harbor
_板栗_6 小时前
k8s 中 deployment 管理的多个 pod 构成集群吗
云原生·容器·kubernetes
秋说7 小时前
监控系统进阶方案:OpenObserve的Docker部署与远程访问配置指南
运维·docker·容器
妖果yaoyao8 小时前
docker 部署clickhouse
clickhouse·docker·容器
江湖人称小鱼哥8 小时前
docker安装flowable ui
ui·docker·容器