1. 基本命令
1.1 Docker 命令
# 构建镜像
docker build -t image_name:tag .
# 查看所有容器
docker ps -a
# 查看所有镜像
docker images
# 停止容器
docker stop container_id
# 启动容器
docker start container_id
1.2 Docker Compose 命令
# 启动服务
docker-compose up
docker-compose up -d # 后台运行
# 停止服务
docker-compose down
# 查看服务日志
docker-compose logs
docker-compose logs -f # 实时日志
2. 清理命令
2.1 删除容器
# 删除所有容器
docker rm $(docker ps -a -q)
# 删除指定容器
docker rm container_id
2.2 删除镜像
# 删除所有镜像
docker rmi $(docker images -q)
# 删除未标记镜像
docker rmi $(docker images -q | awk '/^<none>/ { print $3 }')
# 删除包含关键字的镜像
docker rmi --force $(docker images | grep keyword | awk '{print $3}')
3. Docker Compose 配置
3.1 基本结构
version: '3'
services:
web:
image: nginx:latest
restart: always
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
environment:
- NODE_ENV=production
links:
- db
- redis
db:
image: mysql:5.7
restart: always
volumes:
- ./data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=myapp
redis:
image: redis:latest
restart: always
3.2 主要配置项说明
配置项 |
说明 |
示例 |
services |
定义服务 |
web, db, redis |
image |
指定镜像 |
nginx:latest |
restart |
重启策略 |
always, no, on-failure |
command |
启动命令 |
python app.py |
volumes |
挂载目录 |
- ./local:/container |
environment |
环境变量 |
- KEY=value |
ports |
端口映射 |
- “8080:80” |
links |
服务连接 |
- db |
4. 最佳实践
4.1 镜像管理
- 使用具体的标签版本,避免使用latest
- 定期清理未使用的镜像
- 使用多阶段构建减小镜像大小
- 合理使用.dockerignore文件
4.2 容器管理
# 查看容器资源使用
docker stats
# 清理所有停止的容器
docker container prune
# 清理所有未使用的数据卷
docker volume prune
4.3 Docker Compose 使用建议
- 将敏感信息存储在.env文件中
- 使用docker-compose.override.yml进行本地开发
- 合理设置重启策略
- 使用健康检查确保服务可用
5. 常见问题解决
5.1 容器无法停止
# 强制停止容器
docker kill container_id
# 强制停止所有容器
docker kill $(docker ps -q)
5.2 磁盘空间问题
# 清理所有未使用的对象
docker system prune -a
# 查看Docker使用的磁盘空间
docker system df
6. 安全建议
- 定期更新基础镜像
- 使用非root用户运行容器
- 限制容器资源使用
- 使用私有镜像仓库
- 实施容器安全扫描