Skip to content

容器操作

运行容器

使用 docker run 命令可以创建并启动一个容器。

bash
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用选项:

  • -d:后台运行容器( detached 模式)。
  • -it:以交互模式运行容器,通常与 -t 一起使用。
  • --name:为容器指定一个名称。
  • -p:映射主机端口到容器端口(格式:主机端口:容器端口)。
  • -v:挂载主机目录到容器目录(格式:主机目录:容器目录)。
  • --rm:容器退出后自动删除容器。

完整示例

bash
docker run -d nginx --name my-nginx -p 80:80 -v /data/www:/usr/share/nginx/html

查看容器

使用 docker ps 命令可以查看当前正在运行的容器。

bash
docker ps [OPTIONS]

常用选项:

  • -a:显示所有容器(包括停止的)。
  • -f:根据条件过滤容器。
  • -l:显示最近创建的容器。
  • -q:只显示容器的 ID。

完整示例

bash
docker ps -a

停止容器

使用 docker stop 命令可以停止一个运行中的容器。

bash
docker stop [OPTIONS] CONTAINER [CONTAINER...]

常用选项:

  • -t:指定超时时间(以秒为单位)。

完整示例

bash
docker stop my-nginx

启动容器

使用 docker start 命令可以启动一个停止的容器。

bash
docker start [OPTIONS] CONTAINER [CONTAINER...]

完整示例

bash
docker start my-nginx

重启容器

使用 docker restart 命令可以重启一个运行中的容器。

bash
docker restart [OPTIONS] CONTAINER [CONTAINER...]

常用选项:

  • -t:指定超时时间(以秒为单位)。

完整示例

bash
docker restart my-nginx

进入容器

使用 docker exec 命令可以进入一个正在运行的容器。

bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

常用选项:

  • -d:后台运行命令。
  • -i:以交互模式运行命令。
  • -t:分配一个伪终端。

完整示例

bash
docker exec -it my-nginx /bin/bash

删除容器

使用 docker rm 命令可以删除一个或多个容器。

bash
docker rm [OPTIONS] CONTAINER [CONTAINER...]

常用选项:

  • -f:强制删除容器(即使容器正在运行)。
  • -l:删除容器及其关联的卷。

完整示例

bash
docker rm my-nginx

查看容器日志

使用 docker logs 命令可以查看容器的日志。

bash
docker logs [OPTIONS] CONTAINER

常用选项:

  • -f:跟踪日志输出。
  • --tail:指定日志的尾部行数。

完整示例

bash
docker logs my-nginx

复制文件到/从容器

使用 docker cp 命令可以复制文件到/从容器。

bash
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

常用选项:

  • -L:保持符号链接。

完整示例

bash
docker cp my-nginx:/etc/nginx/nginx.conf .
docker cp nginx.conf my-nginx:/etc/nginx/

查看容器详细信息

使用 docker inspect 命令可以查看容器的详细信息。

bash
docker inspect [OPTIONS] CONTAINER [CONTAINER...]

完整示例

bash
docker inspect my-nginx

暂停/恢复容器

使用 docker pause 命令可以暂停一个运行中的容器。

使用 docker unpause 命令可以恢复一个暂停的容器。

bash
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]

完整示例

bash
docker pause my-nginx
docker unpause my-nginx

重命名容器

使用 docker rename 命令可以重命名一个容器。

bash
docker rename CONTAINER NEW_NAME

完整示例

bash
docker rename my-nginx new-nginx

导出和导入容器

使用 docker export 命令可以导出一个容器为一个 tar 归档文件。

使用 docker import 命令可以导入一个 tar 归档文件为一个镜像。

bash
docker export [OPTIONS] CONTAINER
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

清理容器

使用 docker system prune 命令可以清理系统中不再需要的资源。

bash
docker system prune [OPTIONS]

常用选项:

  • -a:清理所有停止的容器。
  • -f:强制清理。
  • -s:清理系统盘的垃圾。

完整示例

bash
docker system prune -a

查看容器进程

使用 docker top 命令可以查看容器的进程信息。

bash
docker top CONTAINER

完整示例

bash
docker top my-nginx

更新容器配置

使用 docker update 命令可以更新容器的配置。

bash
docker update [OPTIONS] CONTAINER [CONTAINER...]

常用选项:

  • --blkio-weight:块 IO 权重(相对权重,范围 100 到 1000)。
  • --cpu-period:限制 CPU CFS(Completely Fair Scheduler)周期。
  • --cpu-quota:限制 CPU CFS(Completely Fair Scheduler)配额。
  • --cpu-rt-period:限制 CPU real-time 周期。
  • --cpu-rt-runtime:限制 CPU real-time 运行时间。
  • --cpu-shares:CPU 共享(相对权重)。
  • --cpus:指定 CPU 核数。
  • --cpuset-cpus:指定 CPU 允许执行的核。
  • --cpuset-mems:指定内存允许执行的节点。
  • --kernel-memory:限制内核内存。
  • --memory:限制内存。
  • --memory-reservation:内存软限制。
  • --memory-swap:交换内存限制。
  • --memory-swappiness:内存交换行为。
  • --pids-limit:限制 PID 数量。

完整示例

bash
docker update --memory 512m my-nginx