程序员必掌握的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: 不删除未被任何容器使用的中间层镜像

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

相关推荐
探索云原生3 小时前
开源 vGPU 方案:HAMi,实现细粒度 GPU 切分
ai·云原生·kubernetes·gpu
Jay_273 小时前
python项目如何创建docker环境
开发语言·python·docker
---wzy---3 小时前
docker生命周期
java·docker·容器
斯普信云原生组4 小时前
K8S主机漏洞扫描时检测到kube-服务目标SSL证书已过期漏洞的一种永久性修复方法
https·kubernetes·ssl
@t.t.4 小时前
使用Swarm工具搭建docker集群
docker·微服务·容器
局外人LZ6 小时前
Docker轻松搭建Neo4j+APOC环境
docker·容器·neo4j
大数据0015 小时前
Docker慢慢学
mysql·docker·kafka·n8n
唐可盐16 小时前
解决docker运行zentao 报错:ln: failed to create symbolic link ‘/opt/zbox/tmp/mysq
运维·docker·容器
泯泷20 小时前
编写 Dockerfile:从入门到精通
后端·docker·容器
苏近之1 天前
微服务版Hello World之k8s集群部署
运维·微服务·容器