当前位置: 首页 > news >正文

Docker命令大全:从入门到精通

作为一名开发人员或运维工程师,掌握Docker已经成为必备技能。无论你是刚刚接触Docker的新手,还是需要随时查阅命令的老兵,这份超全、超实用的Docker命令大全都将为你提供极大的便利。本文涵盖了镜像管理、容器操作、网络配置、数据卷等全场景高频命令,附带简洁说明和实用示例,助你提升容器化管理和开发效率。

一、Docker基础概念

在深入命令之前,先简单回顾Docker的核心概念:

  • 镜像(Image):容器的模板,类似于面向对象中的类

  • 容器(Container):镜像的运行实例,类似于类的实例化对象

  • 仓库(Repository):存放镜像的地方,如Docker Hub

二、帮助命令

当你对Docker命令不熟悉时,首先应该掌握帮助命令:

bash

docker version          # 查看docker版本信息
docker info             # 显示系统范围的信息:cite[2]
docker --help           # 查看docker中的所有命令及相关参数信息:cite[2]

三、镜像管理命令

镜像是容器的基础,掌握镜像管理是使用Docker的第一步。

1. 查看与搜索镜像

bash

# 列出本地所有镜像
docker images# 在Docker Hub搜索镜像,只列出前5个结果
docker search --limit 5 redis:cite[2]

2. 拉取与推送镜像

bash

# 从仓库拉取镜像,不写标签默认为latest
docker pull nginx:latest# 将本地镜像推送到镜像仓库
docker push myapp:v1

3. 构建与删除镜像

bash

# 使用当前目录的Dockerfile构建镜像
docker build -t myapp:v1 .# 删除一个镜像
docker rmi myapp:v1# 强制删除多个镜像
docker rmi -f image1:v1 image2:v1:cite[2]# 清理悬空镜像(build失败残留)
docker image prune

4. 镜像导入导出与历史

bash

# 将镜像保存为tar归档文件
docker save myapp > myapp.tar# 从tar归档文件加载镜像
docker load < myapp.tar# 显示镜像的历史信息
docker history nginx# 为镜像添加一个新的标签
docker tag nginx myregistry/nginx:v1

四、容器管理命令

容器是镜像的运行实例,是Docker的核心。

1. 容器生命周期管理

bash

# 创建并启动一个交互式容器
docker run -it ubuntu /bin/bash:cite[2]# 启动守护式容器(后台运行)
docker run -d nginx:cite[2]# 启动已停止的容器
docker start mycontainer# 停止正在运行的容器(优雅关闭)
docker stop mycontainer# 重启容器
docker restart mycontainer# 立即终止容器的运行
docker kill mycontainer:cite[2]:cite[5]

docker run 常用选项详解

  • -d:后台运行容器(守护模式)

  • -it:交互模式运行容器,并分配伪终端

  • --name:为容器指定名称

  • -p:端口映射,格式为 宿主机端口:容器端口

  • -v:挂载数据卷,格式为 宿主机路径:容器路径

  • -e:设置环境变量

  • --network:指定容器网络

  • --restart:设置重启策略(no, on-failure, always, unless-stopped)

  • --rm:容器退出时自动删除

2. 容器信息查看

bash

# 查看正在运行的容器
docker ps# 查看所有容器(包括已停止的)
docker ps -a:cite[2]:cite[8]# 查看最近创建的5个容器
docker ps -n 5:cite[5]# 查看容器日志
docker logs mycontainer# 实时跟踪日志
docker logs -f mycontainer# 获取容器的详细信息
docker inspect mycontainer:cite[2]# 显示容器内运行的进程
docker top mycontainer:cite[2]# 显示容器的实时资源使用情况
docker stats mycontainer# 显示容器的端口映射
docker port mycontainer

3. 容器操作与维护

bash

# 进入正在运行的容器并以命令行交互(推荐方式)
docker exec -it mycontainer /bin/bash:cite[2]:cite[3]# 连接到正在运行的容器(不推荐,退出会导致容器停止)
docker attach mycontainer:cite[3]# 从容器复制文件到主机
docker cp mycontainer:/path/to/file /host/path# 从主机复制文件到容器
docker cp /host/path mycontainer:/container/path:cite[7]# 从容器创建新的镜像
docker commit mycontainer newimage:v1:cite[7]# 重命名容器
docker rename old_name new_name:cite[7]# 更新容器的CPU份额限制
docker update --cpu-shares 512 mycontainer

4. 容器删除

bash

# 删除已停止的容器
docker rm mycontainer# 强制删除正在运行的容器
docker rm -f mycontainer:cite[2]# 删除所有停止的容器
docker container prune

五、数据卷与挂载命令

数据卷可以实现数据持久化和容器间数据共享。

1. 数据卷管理

bash

# 创建一个数据卷
docker volume create mydata# 查看所有数据卷
docker volume ls# 删除数据卷
docker volume rm mydata# 删除所有未使用的卷
docker volume prune

2. 挂载方式

bash

# 方式1:挂载主机目录(推荐开发环境)
docker run -d -v /host/path:/container/path nginx# 方式2:使用命名卷(推荐生产环境)
docker run -d -v mydata:/data nginx# 方式3:只读挂载
docker run -d -v /host/config:/etc/config:ro nginx# 方式4:使用--mount选项(更详细的配置)
docker run --mount type=bind,source=/host/path,target=/container/path nginx

六、网络管理命令

Docker网络允许容器之间以及容器与外部世界通信。

1. 网络管理基础

bash

# 查看所有网络
docker network ls# 创建自定义网络
docker network create mynet# 删除网络
docker network rm mynet# 显示网络的详细信息
docker network inspect mynet

2. 容器网络连接

bash

# 将容器加入网络
docker network connect mynet mycontainer# 将容器移出网络
docker network disconnect mynet mycontainer# 启动时指定网络
docker run --network=mynet nginx

3. 网络示例:容器互通

bash

# 创建网络
docker network create mynet# 启动两个容器并加入同一网络
docker run -d --name db --network mynet redis
docker run -d --name app --network mynet myapp:v1# 此时app容器可以直接用`db`作为主机名访问Redis

七、实用技巧与常见场景

1. 常用场景示例

bash

# 运行Nginx容器并挂载网页目录
docker run -d --name my-nginx -p 80:80 -v /host/html:/usr/share/nginx/html nginx# 进入Redis容器并执行命令
docker exec -it my-redis redis-cli# 查看容器IP地址
docker inspect mycontainer | grep "IPAddress"# 构建时跳过缓存
docker build --no-cache -t myapp:v1 .# 运行Node-RED并持久化数据
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:cite[6]

2. 资源限制

bash

# 设置容器内存和CPU限制
docker run --memory=2g --cpus=1.5 -d nginx# 设置容器重启策略
docker run --restart=always -d myapp

3. 环境变量配置

bash

# 通过-e选项设置环境变量
docker run -e "DB_HOST=db" -e "DB_USER=admin" -d myapp# 通过环境变量文件设置
docker run --env-file ./env.list -d myapp

八、Docker系统维护命令

定期清理可以释放磁盘空间,保持系统高效运行。

bash

# 查看Docker磁盘使用情况
docker system df# 清理所有未使用的资源(容器、网络、镜像、构建缓存)
docker system prune# 清理所有未使用的镜像(包括未被引用的)
docker system prune -a# 实时获取Docker系统的事件
docker system events

注意prune -a会删除所有未使用的镜像,确认后再执行!

总结

本文涵盖了Docker最常用的命令及其具体实例,从基础的镜像和容器管理,到高级的网络配置和数据持久化。建议收藏本文,在日常使用中随时查阅。记住,熟练掌握Docker命令的最佳方式就是多实践、多尝试,随着使用经验的积累,这些命令将逐渐变成你的第二本能。

http://www.dtcms.com/a/503202.html

相关文章:

  • 沈阳网站制作公司思路留学网站建设
  • js封装一个双精度算法实现
  • 性能优化:提升软件效率的实用指南
  • 【FPGA】设计流程——Veriolg输入
  • 公共交通安全再讨论
  • C++蓝桥杯之结构体10.15
  • 从原理到实战:Java 队列(Queue)指南
  • 【C++】用红黑树封装map与set
  • php网络公司网站源码网站建设与管理的体会
  • 做网站要先申请域名吗做彩铃的网站
  • 零基础做地方门户网站装修网名大全
  • Docker入门手册
  • 谷歌 Gemini 2.5 Flash Image 震撼升级图像编辑
  • Spring Boot 3零基础教程,WEB 开发 整合 Thymeleaf 笔记36
  • [go 面试] 并发与数据一致性:事务的保障
  • gitee——代码托管平台(进行托管所需的相关软件)
  • JavaWeb后端-Maven、单元测试
  • 微网站后台怎么注册有哪些公众号是小黄油的
  • 【SayCan】LLM+价值函数:以言为引,量力而行
  • 做亚马逊外国网站需要语言好吗大都会app约
  • DaVinci4.2.3 | 无限次AI图片生成,可以预制多种风格,提示限制清理数据重新进即可
  • Linux 配置双栈协议(IPv4 + IPv6)详解
  • JAVA全栈JVM篇————初识JVM
  • 在PyTorch中实现自定义损失函数
  • Hoeffding树:数据流挖掘中的高效分类算法详解
  • 深入解析Java并发基石AQS框架的设计哲学与实战应用
  • 爬虫+Docker:让你的爬虫项目一键部署、可移植
  • 微信网站设计模板下载不用建网站怎么做淘宝客
  • wordpress主题 外贸网站模板下载新品发布会流程
  • 数据结构----树