Skip to content

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 prune

2. 容器日志操作

bash
# 查看容器日志(实时)
docker logs -f <容器名/ID>

# 查看最后 N 行日志
docker logs --tail=100 <容器名/ID>

# 查看指定时间范围的日志(例如最近1小时)
docker logs --since 1h <容器名/ID>

# 导出日志到文件
docker logs <容器名/ID> > container.log

3. 进入容器与执行命令

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.tar

7. 网络相关

bash
# 查看容器 IP 地址
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器名/ID>

# 将容器连接到自定义网络
docker network connect my_network <容器名/ID>

# 查看容器网络配置
docker network inspect my_network

8. 资源限制

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 <镜像>

注意事项

  1. 容器名/ID 可用 docker ps 查看,支持短ID(前3位以上字符)。
  2. 操作生产环境容器前,务必确认影响范围。
  3. 数据持久化建议使用 -v 挂载卷,避免容器删除后数据丢失。
/src/technology/docker/%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4.html