Pradumnasaraf/DevOps项目中的Docker命令完全指南
前言
Docker作为现代DevOps实践中不可或缺的工具,其命令体系庞大而复杂。本文将系统梳理Pradumnasaraf/DevOps项目中整理的Docker命令,帮助开发者快速掌握Docker的核心操作。
Docker基础命令
版本与环境检查
在开始使用Docker前,首先需要确认Docker环境是否正常:
docker version
这条命令会显示Docker客户端和服务端的版本信息,是排查环境问题的第一步。
镜像管理
镜像是Docker的核心概念,以下是常用镜像操作:
docker images # 列出本地所有镜像
docker pull nginx # 从仓库拉取镜像
docker rmi nginx # 删除指定镜像
docker rmi $(docker images -q) # 删除所有镜像(谨慎使用)
特别提示:docker pull
命令默认会拉取latest标签的镜像,生产环境建议明确指定版本号,如nginx:1.21.6
。
容器生命周期管理
容器启停
docker run -d -p 8080:80 --name mynginx nginx # 启动容器
docker stop mynginx # 停止容器
docker start mynginx # 启动已停止的容器
docker restart mynginx # 重启容器
参数说明:
-d
: 后台运行(守护进程模式)-p
: 端口映射(主机端口:容器端口)--name
: 为容器指定名称
容器监控
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器(包括已停止的)
docker stats mynginx # 查看容器资源使用情况
docker logs mynginx # 查看容器日志
docker inspect mynginx # 查看容器详细信息
容器交互
进入运行中的容器进行调试:
docker exec -it mynginx bash
注意:不是所有镜像都包含bash,对于精简版镜像可以尝试使用sh
。
网络管理
Docker网络是容器间通信的基础:
docker network ls # 列出所有网络
docker network create mynet # 创建自定义网络
docker run --network=mynet nginx # 在指定网络中运行容器
docker network inspect mynet # 查看网络详情
数据持久化
Docker提供了多种数据持久化方案:
绑定挂载
docker run -v /host/path:/container/path nginx
这种方式的优点是开发时可以直接修改主机文件,容器内会实时同步。
卷管理
docker volume create myvol # 创建卷
docker run -v myvol:/container/path nginx # 使用卷
卷相比绑定挂载更易于备份和迁移。
Docker Compose
Compose是管理多容器应用的神器:
docker compose up -d # 启动服务
docker compose down # 停止并移除服务
docker compose logs # 查看服务日志
高级用法:
docker compose -f docker-compose.yml -f docker-compose.prod.yml up # 多文件组合
docker compose up --build # 重新构建镜像
Docker Swarm与服务编排
Swarm是Docker原生的集群管理工具:
docker swarm init # 初始化Swarm集群
docker service create --replicas 3 -p 8080:80 --name web nginx # 创建服务
docker service scale web=5 # 扩展服务实例数
docker service update --image nginx:1.21 web # 滚动更新服务
实用技巧
- 批量清理:
docker container prune # 清理停止的容器
docker image prune # 清理未使用的镜像
- 临时容器:
docker run --rm -it ubuntu bash # 退出后自动删除容器
- 构建自定义镜像:
docker build -t myapp:1.0 .
总结
本文基于Pradumnasaraf/DevOps项目中的Docker命令文档,系统梳理了从基础到进阶的Docker操作。掌握这些命令后,你将能够:
- 高效管理Docker镜像和容器
- 配置容器网络和数据持久化
- 使用Compose编排多容器应用
- 通过Swarm实现服务集群管理
建议读者在实际操作中逐步尝试这些命令,结合具体项目需求灵活运用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考