Docker容器相关命令
1. 容器生命周期管理
1.1 创建并启动容器
bash
# 创建并启动容器(前台模式)
docker run <镜像名>
# 创建并启动容器(后台模式)
docker run -d <镜像名>
# 指定容器名称
docker run --name my_container <镜像名>
# 端口映射(宿主机端口:容器端口)
docker run -p 8080:80 <镜像名>
# 挂载数据卷(宿主机目录:容器目录)
docker run -v /宿主机路径:/容器路径 <镜像名>
# 设置环境变量
docker run -e "ENV_VAR=value" <镜像名>1.2 启动/停止/重启容器
bash
# 启动已停止的容器
docker start <容器名/ID>
# 停止运行中的容器
docker stop <容器名/ID>
# 强制停止容器(SIGKILL)
docker kill <容器名/ID>
# 重启容器
docker restart <容器名/ID>1.3 删除容器
bash
# 删除已停止的容器
docker rm <容器名/ID>
# 强制删除运行中的容器
docker rm -f <容器名/ID>
# 删除所有已停止的容器
docker container prune2. 容器日志操作
bash
# 查看容器日志(实时)
docker logs -f <容器名/ID>
# 查看最后 N 行日志
docker logs --tail=100 <容器名/ID>
# 查看指定时间范围的日志(例如最近1小时)
docker logs --since 1h <容器名/ID>
# 导出日志到文件
docker logs <容器名/ID> > container.log3. 进入容器与执行命令
bash
# 进入容器终端(推荐方式,退出不停止容器)
docker exec -it <容器名/ID> /bin/bash
# 以 root 用户进入容器
docker exec -u root -it <容器名/ID> /bin/sh
# 在容器内执行单条命令
docker exec <容器名/ID> ls /app
# 临时附加到容器(慎用,退出可能导致容器停止)
docker attach <容器名/ID>4. 文件复制
4.1 宿主机 → 容器
bash
docker cp /宿主机文件路径 <容器名/ID>:/容器路径
# 示例:
docker cp ./config.json my_container:/app/config/4.2 容器 → 宿主机
bash
docker cp <容器名/ID>:/容器文件路径 /宿主机路径
# 示例:
docker cp my_container:/var/log/nginx/error.log ./5. 容器信息查看
bash
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 查看容器详细信息
docker inspect <容器名/ID>
# 查看容器进程列表
docker top <容器名/ID>
# 查看容器资源使用统计(实时)
docker stats <容器名/ID>
# 查看容器端口映射
docker port <容器名/ID>6. 容器导入导出
bash
# 导出容器文件系统为 tar 包(不包含历史层)
docker export <容器名/ID> > container.tar
# 从 tar 包导入为镜像
docker import container.tar new_image:tag
# 保存镜像为 tar 文件(包含所有层)
docker save -o image.tar <镜像名>
# 加载镜像 tar 文件
docker load -i image.tar7. 网络相关
bash
# 查看容器 IP 地址
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器名/ID>
# 将容器连接到自定义网络
docker network connect my_network <容器名/ID>
# 查看容器网络配置
docker network inspect my_network8. 资源限制
bash
# 限制内存使用(例如 512MB)
docker run -m 512m <镜像名>
# 限制 CPU 使用(例如 1.5 个核心)
docker run --cpus=1.5 <镜像名>9. 容器更新
bash
# 修改容器重启策略(如 always)
docker update --restart=always <容器名/ID>
# 动态调整资源限制(如内存)
docker update -m 1g <容器名/ID>10. 实用技巧
bash
# 清理所有停止的容器、未使用的网络和悬空镜像
docker system prune -a
# 批量停止所有运行中的容器
docker stop $(docker ps -q)
# 批量删除所有容器
docker rm -f $(docker ps -aq)
# 修改容器时间与宿主机同步
docker run -v /etc/localtime:/etc/localtime:ro <镜像名>注意事项
- 容器名/ID 可用
docker ps查看,支持短ID(前3位以上字符)。 - 操作生产环境容器前,务必确认影响范围。
- 数据持久化建议使用
-v挂载卷,避免容器删除后数据丢失。