Docker命令大全:从基础到高级实战指南
Docker作为现代容器化技术的核心工具,其命令体系是开发运维的必备技能。本文将系统整理常用命令,助您高效管理容器生态。
一、基础命令篇
1. 镜像管理
bash
# 拉取镜像
$ docker pull nginx:latest
# 查看本地镜像
$ docker images
# 删除镜像
$ docker rmi <image_id>
# 构建镜像
$ docker build -t myapp:v1 .
2. 容器生命周期
bash
# 启动容器
$ docker run -d --name web nginx
# 停止/启动容器
$ docker stop web
$ docker start web
# 删除容器
$ docker rm -f web
# 查看运行中容器
$ docker ps
3. 容器操作
bash
# 进入容器终端
$ docker exec -it web bash
# 查看容器日志
$ docker logs -f web
# 复制文件
$ docker cp local.txt web:/app
二、高级命令篇
1. 网络管理
bash
# 创建自定义网络
$ docker network create mynet
# 连接容器到网络
$ docker network connect mynet web
# 查看端口映射
$ docker port web 80
2. 数据卷操作
bash
# 创建持久化卷
$ docker volume create dbdata
# 挂载数据卷
$ docker run -v dbdata:/var/lib/mysql mysql
# 查看卷信息
$ docker volume inspect dbdata
3. Docker Compose
yml
# docker-compose.yml示例
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: postgres
volumes:
- pgdata:/var/lib/postgresql
volumes:
pgdata:
bash
# 启动服务栈
$ docker-compose up -d
# 查看服务状态
$ docker-compose ps
4. 资源监控
bash
# 实时资源监控
$ docker stats
# 检查容器配置
$ docker inspect web
# 查看资源使用详情
$ docker system df
5. 安全加固
bash
# 扫描镜像漏洞
$ docker scan nginx
# 设置用户权限
$ docker run -u 1001:1001 nginx
# 只读文件系统
$ docker run --read-only alpine
三、实用技巧
- 清理磁盘空间
bash
$ docker system prune -a --volumes
- 容器健康检查
yml
# Dockerfile配置
HEALTHCHECK --interval=30s CMD curl -f http://localhost || exit 1
- 多阶段构建优化
Dockerfile
FROM golang AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
FROM alpine
COPY --from=builder /app/myapp .
CMD ["./myapp"]
结语
掌握这些命令可覆盖90%的日常容器操作场景。建议:
- 组合使用基础命令完成常规任务
- 善用
--help
参数探索子命令 - 重要操作前使用
docker diff
检查变更
通过实践发现,将常用命令封装为Makefile或Shell脚本可显著提升工作效率。例如自动化部署脚本:
bash
#!/bin/bash
docker build -t myapp:$1 .
docker push myrepo/myapp:$1
kubectl set image deployment/myapp myapp=myrepo/myapp:$1