Docker 容器的常用操作包括:
1. 创建和运行容器
# 创建并运行容器
docker run nginx:latest# 创建并运行容器(后台运行)
docker run -d nginx:latest# 创建并指定容器名称
docker run -d --name mynginx nginx:latest# 端口映射
docker run -d -p 8080:80 nginx:latest# 挂载卷
docker run -d -v /host/data:/container/data nginx:latest# 设置环境变量
docker run -d -e ENV=production myapp:v1# 交互式运行(进入容器)
docker run -it ubuntu:20.04 /bin/bash# 运行一次性命令
docker run --rm ubuntu:20.04 echo "Hello World"
2. 查看容器
# 查看运行中的容器
docker ps
docker container ls# 查看所有容器(包括已停止)
docker ps -a
docker container ls -a# 查看最新创建的容器
docker ps -l# 查看容器详细信息
docker inspect mynginx# 查看容器资源使用
docker stats mynginx# 查看容器日志
docker logs mynginx
docker logs -f mynginx # 实时查看
docker logs --tail 100 mynginx # 查看最后100行
3. 启动和停止容器
# 启动已停止的容器
docker start mynginx# 停止运行中的容器
docker stop mynginx# 强制停止容器
docker kill mynginx# 重启容器
docker restart mynginx# 暂停/恢复容器
docker pause mynginx
docker unpause mynginx
4. 进入容器
# 使用 exec 进入(推荐)
docker exec -it mynginx /bin/bash
docker exec -it mynginx /bin/sh# 使用 attach 进入(会直接进入当前会话)
docker attach mynginx# 在容器中执行单个命令
docker exec mynginx ls -la
docker exec mynginx cat /etc/nginx/nginx.conf
5. 删除容器
# 删除指定容器(需先停止)
docker rm mynginx# 强制删除(运行中的容器也会被删除)
docker rm -f mynginx# 删除所有已停止的容器
docker container prune# 删除所有容器(包括运行中的)
docker rm -f $(docker ps -aq)# 退出时自动删除
docker run --rm -it ubuntu:20.04 /bin/bash
6. 文件操作
# 从容器复制文件到宿主机
docker cp mynginx:/etc/nginx/nginx.conf ./nginx.conf# 从宿主机复制文件到容器
docker cp ./config.json mynginx:/app/config.json# 复制目录
docker cp ./html/. mynginx:/usr/share/nginx/html/
7. 端口和网络
# 查看容器端口映射
docker port mynginx# 查看容器网络设置
docker inspect mynginx | grep IPAddress# 创建自定义网络
docker network create mynetwork# 将容器连接到网络
docker network connect mynetwork mynginx# 断开容器网络
docker network disconnect mynetwork mynginx# 运行容器指定网络
docker run -d --network mynetwork --name mynginx nginx
8. 资源限制
# 限制内存使用
docker run -d -m 512m --memory-swap 1g nginx# 限制CPU使用
docker run -d --cpus="1.5" nginx# 限制CPU份额(相对权重)
docker run -d --cpu-shares 512 nginx# 同时限制内存和CPU
docker run -d -m 512m --cpus="1" --name limited nginx
9. 容器转换
# 将容器保存为镜像
docker commit mynginx mynginx-custom:v1# 带作者和说明的提交
docker commit -a "Author Name" -m "Added custom config" mynginx mynginx-custom:v1# 导出容器为tar文件
docker export mynginx > mynginx.tar# 导入tar文件为镜像
docker import mynginx.tar mynginx:imported
10. 监控和调试
# 查看容器资源使用统计(实时)
docker stats# 查看容器进程
docker top mynginx# 查看容器事件
docker events --filter container=mynginx# 查看容器文件变化
docker diff mynginx# 更新容器配置(内存/CPU等)
docker update --cpus="2" --memory="1g" mynginx
11. 其他实用操作
# 重命名容器
docker rename oldname newname# 等待容器停止(阻塞)
docker wait mynginx# 查看容器内部日志文件位置
docker inspect --format='{{.LogPath}}' mynginx# 清理所有停止的容器和未使用的资源
docker system prune# 查看容器详细信息片段
docker inspect -f '{{.State.Status}}' mynginx
12. 实战示例
# 完整的 Web 应用部署流程
docker pull nginx:alpine
docker run -d --name webapp -p 80:80 \-v /website:/usr/share/nginx/html \--restart always \nginx:alpine# 进入容器调试
docker exec -it webapp /bin/sh# 更新配置后重启
docker restart webapp# 查看日志排查问题
docker logs --tail 50 webapp# 备份容器数据
docker cp webapp:/usr/share/nginx/html ./backup/# 创建新版本镜像
docker commit webapp webapp:v2
