前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五分钟学K8S系列<五> - 一万五千字成为docker 的容器管理高手

五分钟学K8S系列<五> - 一万五千字成为docker 的容器管理高手

原创
作者头像
五分钟学SRE
发布2024-05-03 19:02:50
2040
发布2024-05-03 19:02:50
举报
文章被收录于专栏:五分钟学K8S五分钟学K8S

容器命令概述

??? Docker 通过提供一系列精细的命令,使得容器管理变得异常便捷。这些命令可以根据它们的用途和使用频率被归纳为核心命令和辅助命令两大类。

▌容器生命周期管理

图片
图片

▌核心命令:日常容器操作的基石

代码语言:javascript
复制
docker ls:展示当前活跃的容器,帮助我们快速了解哪些容器正在运行。docker run:启动一个新的容器实例,它是容器生命周期的开始。docker stop:终止一个或多个运行中的容器,相当于给容器发送停止信号。docker start:恢复一个或多个之前停止的容器的运行。docker cp:实现本地系统与容器间的文件或目录复制,便于资源共享和数据迁移。docker exec:在运行的容器中执行命令,用于容器内部操作和故障排查。docker logs:获取容器的日志信息,对监控和排错至关重要。docker rm:移除一个或多个容器,释放系统资源。

▌辅助命令:高级功能与特定场景的利器

代码语言:javascript
复制
docker attach:连接到一个正在运行的容器,进行实时交互。docker commit:从已修改的容器创建一个新的镜像,适用于快速生成新的基础镜像。docker create:创建一个新的容器实例,但不立即启动,允许我们预先设置容器配置。docker diff:展示容器文件系统的变动,有助于理解容器内部的变化。docker export:将容器的文件系统导出为 tar 包,用于容器快照和备份。docker inspect:获取容器的详细信息,包括配置和状态,是调试的强有力工具。docker kill:向容器发送信号,通常用于紧急终止容器运行。docker pause:暂停容器中的所有进程,而不停容器,适用于临时冻结容器状态。docker port:列出容器的端口映射关系,帮助我们了解容器的网络配置。docker prune:清理所有未使用的容器、镜像、网络和卷,优化系统资源。docker rename:给容器设置一个新的名字,便于识别和管理。docker restart:重启一个或多个容器,适用于快速恢复容器服务。docker stats:实时显示容器的资源使用情况,如 CPU 和内存使用率。docker top:展示容器内运行的进程,类似于 Linux 的 top 命令。docker unpause:恢复之前被暂停的容器中的所有进程。docker update:更新容器的配置,如资源限制。docker wait:等待一个或多个容器停止,然后返回它们的退出状态。

????通过这些命令,Docker 提供了一个全面的工具集,用于容器的创建、运行、监控和管理,极大地简化了容器化应用的生命周期管理。

常见命令解析

▌使用"ls"查看容器列表

????Docker 提供了 docker container ls 命令,以便我们可以查看 Docker 守护进程当前管理的容器列表。这个命令支持多种选项,允许我们根据需要获取不同维度的容器信息。

命令选项
  • -a?或?--all:显示所有容器,包括那些未在运行的。
  • -q?或?--quiet:仅显示容器的 ID 列表。
  • --latest:仅显示最近创建的容器的相关信息。
查看容器列表的参考案例
  • 列出所有正在运行的容器:
代码语言:javascript
复制
docker container ls
  • 列出最近启动的一个容器:
代码语言:javascript
复制
docker container ls -l
  • 列出所有容器,包括已退出的:
代码语言:javascript
复制
docker container ls -a
  • 列出正在运行的容器的 ID:
代码语言:javascript
复制
docker container ls -q
  • 列出正在运行的容器及其数据大小:
代码语言:javascript
复制
docker container ls -s
CONTAINER ID   IMAGE                  COMMAND       CREATED       STATUS                   PORTS     NAMES           SIZE3a1bdfa88872   dockerfile-sre-nginx   "/bin/bash"   8 hours ago   Up 8 hours (unhealthy)             goofy_taussig   0B (virtual 356MB)
命令别名
  • lsps?和?list?都是?docker container ls?的别名,可以互换使用。
输出字段含义
  • CONTAINER ID:容器的唯一标识符。
  • IMAGE:容器使用的镜像信息。
  • COMMAND:容器启动时执行的命令。
  • CREATED:容器创建的时间。
  • STATUS:容器的当前状态,常见状态包括:
    • Up:容器正在运行。
    • Exited:容器已退出。
    • Paused:容器被暂停。
    • Created:容器已创建但未启动。
  • PORTS:容器的端口映射信息。
  • NAMES:容器的名称。
  • SIZE:容器产生的数据大小(仅在使用?-s?选项时显示)。

通过这些选项和字段,我们可以有效地管理和监控 Docker 容器的运行状态和资源使用情况。

▌使用"run"启动容器

????Docker 的 docker run 命令是创建和启动新容器的关键工具。它支持丰富的参数,能够满足多样化的运行需求,从而使得容器的部署和管理变得异常灵活和强大。

docker run 参数概览
  • -d--detach:以 detached 模式在后台运行容器。
  • -it:组合参数,-i 表示交互式,-t 分配一个伪终端。
  • --rm:容器退出时自动删除容器实例,适用于临时任务或测试环境。
容器启动流程详解
  1. 本地镜像检查:Docker 守护进程首先检查本地是否存在指定的镜像标签。如果不存在,Docker 将尝试下载它。
  2. 镜像下载:如果本地没有所需的镜像,Docker 将从 Docker Hub 或私有仓库下载镜像。Docker 的缓存机制允许只下载缺失的层,优化下载过程。
  3. 容器创建:Docker 基于镜像创建一个新的容器实例,配置其执行环境,包括根文件系统、网络和存储。
  4. 文件系统分配:Docker 使用联合文件系统为容器分配文件系统,通常包括一个只读的镜像层和一个可写的容器层。
  5. 网络配置:Docker 为容器配置网络接口,默认使用桥接网络,自动分配 IP 地址。
  6. IP 地址分配:Docker 为容器分配一个唯一的 IP 地址,用于容器的网络通信。
  7. 应用程序执行:Docker 执行我们指定的命令或应用程序,这是容器的主要目的。
  8. 容器终止:当容器内的应用程序结束或被外部命令终止时,容器将停止,Docker 负责清理资源。
附加配置选项
  • 镜像标签:通过指定完整的镜像名(如 username/repo:tag)来拉取特定版本的镜像。
  • 网络模式:使用 --network 标志选择不同的网络配置,如 hostbridgenone 或自定义网络。
  • 存储卷:通过 -v--volume 标志挂载存储卷,实现数据持久化或共享。
  • 环境变量:使用 -e--env 标志为容器设置环境变量。
  • 用户权限:通过 --user 标志指定容器内应用程序的运行用户。
  • 资源限制:使用 --memory--cpus 标志限制容器使用的资源。
架构图解析
代码语言:txt
复制
[Docker Host] -- Docker Daemon
  |
  |- [Docker Network Bridge] -- IP: <bridge-ip>
       |
  +---- [Container A] -- IP: <container-a-ip>
  |     |- [App A] -- Process: <user-specified-app>
  |     +---- [Filesystem] -- Overlay File System (Read-Only Image + Read-Write Layer)
  |
  +---- [Container B] -- IP: <container-b-ip>
        |- [App B] -- Process: <user-specified-app>
        +---- [Filesystem] -- Overlay File System (Read-Only Image + Read-Write Layer)
  |
  |- [Docker Volumes] -- Persistent Data Storage
  |- [Docker Images] -- Image Cache

????在 Docker 的架构中,Docker 守护进程管理着主机上的镜像、容器和网络。每个容器都连接到 Docker 的默认网桥网络,并拥有独立的网络接口和 IP 地址。容器的文件系统由只读的镜像层和可写的容器层组成,而 Docker 卷提供了数据的持久化存储。

示例与应用
  • 前台运行容器

    docker run nginx:1.20.1

  • 后台运行容器

    docker run -d nginx:1.20.1

  • 交互式 shell

    docker run -i -t alpine sh

  • 短期任务

    docker run -d alpine sleep 10

  • 指定启动命令

    docker run -d nginx:1.20.1 tail -f /etc/hosts

  • 命名和自动删除

    docker run --rm --name my-nginx -it nginx:1.20.1 bash

  • 主机映射

    docker run --rm -it --add-host myhost:19.165.213.212 alpine

  • 环境变量和工作目录

    docker run --rm -it -e MY_ENV_VAR=value -w /app alpine

注意事项
  • 短选项可以合并使用,例如 -dit,但长选项需要单独使用。
  • 如果不指定 COMMAND,Docker 将使用镜像中预设的默认 COMMAND。

通过深入理解 docker run 命令及其参数,我们可以更加灵活和高效地创建和管理 Docker 容器,满足各种复杂的应用场景需求。

▌使用"stop"停止容器运行

docker stop 命令用于终止一个或多个正在运行的 Docker 容器。当容器中运行的应用程序结束时,容器会进入终止状态。这是因为容器的主进程(通常是启动时指定的命令)一旦退出,容器就没有了继续执行的理由。

docker stop 的选项
  • -t, --time:指定在停止容器前等待容器内应用程序优雅关闭的超时时间(单位为秒)。
容器终止后的管理
  • 查看所有容器(包括终止的容器):

    docker ps -a 这里的 -a--all 选项允许查看所有容器,无论它们当前的状态如何。

  • 查看容器的详细状态

    docker inspect <container_id_or_name> 这个命令将提供容器的详细信息,包括它的状态。

  • 重启终止的容器

    docker start <container_id_or_name> 这个命令可以重启一个已经终止的容器。

  • 删除终止的容器

    docker rm <container_id_or_name> 如果一个容器不再需要,可以使用此命令将其从系统中删除。

  • 删除所有终止的容器

    docker container prune 这个命令会删除所有当前处于终止状态的容器,释放它们占用的资源。

使用 docker stop 的示例
  • 停止单个容器

    docker stop pedantic_wright 停止名为 "pedantic_wright" 的容器。

  • 停止多个容器

    docker stop pedantic_wright cool_boyd 停止名为 "pedantic_wright" 和 "cool_boyd" 的容器。

  • 设置超时时间

    docker stop -t 3 cool_boyd 停止名为 "cool_boyd" 的容器,并在 3 秒后发送 SIGKILL 信号。

  • 同时停止多个容器并设置超时

    docker stop -t 1 cool_boyd crazy_easley 停止 "cool_boyd" 和 "crazy_easley" 容器,并在 1 秒后发送 SIGKILL 信号。

注意事项
  • 如果不使用 -t 选项,默认情况下,Docker 会在 10 秒后向容器发送 SIGKILL 信号,强制终止容器。
  • 优雅地关闭容器可以让容器内运行的应用程序有机会执行清理工作,如保存状态、释放资源等。

通过使用 docker stop 命令,我们可以根据需要控制容器的生命周期,同时确保容器资源得到合理管理和释放。

▌使用"start"启动容器

??? docker start 命令用于重新启动一个或多个之前已停止的 Docker 容器。这使得我们可以轻松地将容器从停止状态恢复到运行状态,而无需重新创建它们。

?docker start 的选项

  • ?-ai:启动容器后附加到容器的标准输入(interactive mode)。这个组合选项是 -a 和 -i 的简写,通常用于交互式 shell。

?使用 docker?start 的示例

  • 启动单个容器:
代码语言:javascript
复制
?docker?container?start??crazy_easley

? 这个命令将启动名为 "crazy_easley" 的容器。

  • 启动多个容器:
代码语言:javascript
复制
docker container start crazy_easley cool_boyd

? 这个命令将启动 "crazy_easley" 和 "cool_boyd" 这两个容器。

  • 交互式启动容器:
代码语言:javascript
复制
 ?docker container start -ai cool_boyd

? 当使用 -ai 选项时,容器的标准输出和标准错误将被输出到当前终端,并且会分配一个交互式的标准输入。这对于需要交互式 shell 的场景非常有用。

?注意事项

  • ?当使用 -i 选项时,所启动的容器内的程序必须支持交互式输入。例如,sh 或 bash 可以很好地工作,因为它们是交互式 shell,而像 tail 或 sleep 这样的命令则不支持交互式输入,因此 -i 选项对它们无效。

通过使用 docker start 命令,我们可以灵活地控制容器的启动和停止,从而更好地管理容器的生命周期。

▌进入 Docker 容器的常见方法

在使用 -d 参数启动 Docker 容器后,容器会在后台运行。有时,我们可能需要进入容器内部进行操作或调试。以下是几种常用的方法:

使用?docker attach?命令

docker attach 是 Docker 提供的用于连接到正在运行的容器的命令。它允许我们与容器内的进程进行交互。

代码语言:javascript
复制
docker attach cool_boyd

选项:

  • --sig-proxy:通过 Docker 守护进程代理信号。
  • --no-stdin:不挂载容器的标准输入。
  • --no-stdout:不挂载容器的标准输出。
  • --no-stderr:不挂载容器的标准错误输出。

注意:

  1. 使用?attach?命令不会创建新的进程,它只是将本地的 stdin、stdout 和 stderr 连接到容器。
  2. 要退出容器,如果是交互式 shell(如?/bin/sh?或?/bin/bash),可以使用?ctrl + p?然后?ctrl + q
  3. 当容器内指定的 COMMAND 退出时,容器的生命周期也会结束。
使用?nsenter?工具

????nsenter 是一个更底层的工具,它允许我们进入容器的命名空间。这通常需要我们知道容器的主进程的 PID。

首先,我们需要找到容器的第一个进程的 PID:

代码语言:javascript
复制
docker inspect -f '{{ .State.Pid }}' cool_boyd

然后,使用 nsenter 进入容器:

代码语言:javascript
复制
nsenter -t <PID> -m -p -- bash

????这里的 <PID> 是容器主进程的 PID。-m-p--nsenter 的选项,分别用于挂载、进程和网络命名空间,而 bash 是我们希望在容器内部运行的 shell。

注意:

  • 确保我们的系统上安装了?nsenter?工具,它通常包含在?util-linux?包中。
  • 使用?nsenter?需要对容器的命名空间有更深入的理解。
其他方法
  • docker exec:执行一个新的命令行会话在已经运行的容器中,不会与容器的原始进程交互。
  • Docker Compose:如果我们使用 Docker Compose,可以通过?docker-compose exec?命令进入容器。

▌使用"cp"拷贝文件

????docker cp 是 Docker 提供的一个实用命令,它允许我们在本地文件系统和 Docker 容器之间复制文件或文件夹。这个命令在需要从容器中提取日志、配置文件或数据时特别有用。

docker cp?的选项
  • -L:如果源文件是一个符号链接,-L?选项会使得?docker cp?命令复制链接所指向的目标文件,而不是链接本身。
使用?docker cp?的示例
  • 将本地文件拷贝到容器中:

    docker cp /etc/hosts cool_boyd:/ Successfully copied 2.05kB to cool_boyd:/ 这个命令将本地的 /etc/hosts 文件复制到名为 cool_boyd的容器的根目录下。

  • 将本地文件拷贝到容器中并重命名:

    docker cp /etc/hosts cool_boyd:/five_minute_sre.host Successfully copied 2.05kB to cool_boyd:/five_minute_sre.host 这个命令将本地的 /etc/hosts 文件复制到容器中,并将其重命名为 five_minute_sre.host

  • 从容器中拷贝文件到本地:

    docker cp cool_boyd:/five_minute_sre.host ./ Successfully copied 2.05kB to /root/./ 这个命令将容器中的 /five_minute_sre.host 文件复制到当前本地目录。

  • 从容器中拷贝文件到本地并重命名:

    docker cp cool_boyd:/five_minute_sre.host ./sre.hostSuccessfully copied 2.05kB to /root/sre.host 这个命令将容器中的 /five_minute_sre.host 文件复制到当前本地目录,并将其重命名为 sre.host

注意事项
  • 如果目标路径不存在,docker cp?命令可能会失败。在执行复制操作之前,最好确保目标路径是有效的。
  • 使用?docker cp?命令时,我们需要确保 Docker 守护进程正在运行,并且有适当的权限来执行该命令。

通过使用 docker cp 命令,我们可以方便地处理容器文件系统中的文件,无论是将文件拷贝到容器中还是从容器中取出。

▌使用?docker exec?在运行的容器中执行命令

????docker exec 是 Docker 提供的一个强大的命令,它允许我们在已经运行的容器实例中执行命令。这对于进入容器进行维护任务、调试或仅仅是查看容器内部的状态非常有用。

docker exec?的常用选项
  • -it:这个组合选项是 -i-t 的简写。
    • -i?或?--interactive:保持标准输入开放,即使不附加到终端。
    • -t?或?--tty:分配一个伪终端。
  • --privileged:给予执行的命令额外的权限,类似于 Docker 容器的 --privileged 启动选项。
使用?docker exec?的示例
  • 在容器中列出目录:

    docker container exec cool_boyd ls -l /etc/hosts-rw-r--r-- 1 root root 174 May 2 21:00 /etc/hosts 这个命令在名为 cool_boyd 的容器中执行 ls -l /etc/hosts,列出 /etc/hosts 目录的内容。

  • 在容器中查看文件内容:

    docker container exec cool_boyd cat /etc/hosts127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters172.17.0.2 377b7097f6e7 这个命令在容器中执行 cat /etc/hosts,输出 /etc/hosts 文件的内容。

  • 在容器中启动交互式 shell:

    docker container exec -w /etc/ -it cool_boyd sh# pwd/etc 这个命令在 inspiring_hertz 容器中启动一个交互式 shell:

    • -w /etc/?设置了 shell 的工作目录。
    • -it?分配了一个伪终端和交互式标准输入。
注意事项
  • 容器必须已经在运行状态,否则?docker exec?命令将无法执行。
  • 使用?-it?选项时,我们可以通过?exit?命令或?Ctrl+D?来关闭 shell 会话。
  • 如果容器启动时没有分配 tty(即没有使用?-t?选项),则即使使用了?-it,我们也可能无法获得交互式 shell。

通过 docker exec,我们可以灵活地访问和操作容器内部,执行各种命令,而无需停止并重新启动容器。

▌使用?docker logs?查看容器日志信息

????docker logs 命令用于获取 Docker 容器的日志输出。Docker 容器的日志是由 Docker 守护进程生成的,并且可以通过这个命令进行查看和分析。

docker logs?的常用选项
  • -f?或?--follow:跟随输出,即实时显示最新的日志条目。
  • --since:显示自指定时间以来的日志。可以是一个时间戳或相对时间(如?1h?表示 1 小时前)。
  • --until:显示指定时间前的日志。
  • --tail:指定最后显示的日志条目数量。如果不设置,默认会显示所有可用的日志。
使用?docker logs?的示例
  • 查看容器日志

    docker logs cool_boyd 这个命令显示名为 cool_boyd的容器的所有日志。

  • 实时查看容器日志

    docker logs -f cool_boyd 使用 -f 选项可以实时查看最新的日志条目。

  • 查看特定时间范围内的日志

    docker logs -tf --since 2024-05-02T01:13:08Z --until 2024-05-03T05:28:38Z cool_boyd 这个命令显示 cool_boyd 容器在指定时间范围内的日志:

    • -t?显示每条日志前面的时间戳。
    • -f?跟随输出,实时更新。
    • --since?指定开始时间。
    • --until?指定结束时间。
注意事项
  • 日志的默认格式可能不包含时间戳。如果需要时间戳,可以使用?-t?选项。
  • 如果日志量很大,使用?--tail?选项限制输出的日志条目数量可以提高性能。
  • Docker 容器的日志可以配置通过多种方式进行管理,包括使用 Docker 的日志驱动或第三方日志管理工具。

通过 docker logs 命令,我们可以方便地查看和分析容器的日志输出,这对于调试和监控容器的运行状态非常重要。

▌使用?docker rm?删除容器

????docker rm 命令用于删除一个或多个 Docker 容器。这是管理容器生命周期的基本命令之一,允许我们清理不再需要的容器实例。

docker rm?的选项
  • -f?或?--force:强制删除一个正在运行的容器。在删除之前,Docker 会尝试停止容器。
  • -v?或?--volumes:删除容器时,也删除与容器关联的所有本地卷数据。
使用?docker rm?的示例
  • 删除已停止的容器:

    docker rm crazy_easley 这个命令将删除名为 crazy_easley 的已停止容器。

  • 删除正在运行的容器:

    docker rm -f cool_boyd 使用 -f 选项强制删除名为 cool_boyd 的正在运行的容器。

  • 删除容器及其关联的卷:

    docker rm -f -v cool_boyd 这个命令不仅会强制删除容器,还会删除其关联的匿名卷。

批量删除容器
  • 删除所有容器:

    docker rm -f `docker ps -aq` 这个命令结合了?docker ps -aq(列出所有容器的 ID)和反引号(执行命令并返回结果)来强制删除所有容器。

注意事项
  • 使用?-f?选项时要小心,因为它会强制停止并删除正在运行的容器,可能会导致数据丢失或其他问题。
  • 使用?-v?选项时,只有匿名卷会被删除,命名卷需要手动删除或使用?docker volume rm?命令。
  • 删除容器后,容器的网络设置和挂载的卷不会自动删除,除非使用?-v?选项。

通过 docker rm 命令,我们可以有效地管理容器资源,释放不再使用的容器所占用的空间。

docker commit?从容器创建新镜像

????docker commit 命令允许我们从更改过的容器中创建一个新的 Docker 镜像。这个命令在需要保存容器的状态并将其作为新镜像重用时非常有用。

docker commit?的选项
  • -a?或?--author:为创建的镜像设置作者信息。
  • -m?或?--message:为提交操作添加说明信息,通常用来描述这次提交做了哪些更改。
使用?docker commit?的示例
代码语言:javascript
复制
docker commit -a "five_nimute_sre" -m "add by alex" admiring_mendel sre-nginx:v2.0sha256:8c05dabc915290cbaa5875d8b8ef69b0e96f0efc06590ff91cb50900da48e3e4

在这个例子中:

  • admiring_mendel?是要提交的容器的名称。
  • five_nimute_sre ?是指定的作者信息。
  • "add by alex"?是提交时的说明信息。
  • sre-nginx:v2.0?是新镜像的名称。
注意事项
  • 提交镜像会创建一个只读的镜像层,这意味着无法从镜像中回滚更改。因此,最佳实践是使用?Dockerfile?来定义镜像内容,以便可以版本控制和复现。
  • 使用?docker commit?创建的镜像不会保存容器的历史或元数据,这可能会使得镜像的创建和分发变得困难。

????通过 docker commit,我们可以快速地将容器的当前状态保存为一个新的镜像,但推荐的做法是使用 Dockerfile 来构建镜像,以便更好地控制镜像的构建过程。

docker create?创建容器但不启动

????docker create 命令用于创建一个新的 Docker 容器实例,但它不会启动容器。这个命令在我们想要预先配置容器,或者在启动之前设置特定的配置时非常有用。

使用?docker create?的示例
代码语言:javascript
复制
 docker create -it sre-nginx

????这个命令将创建一个基于 sre-nginx 镜像的容器实例,并且容器将具有一个交互式的 shell(由于 -it 参数),但容器不会被启动。

docker create?的选项
  • -it:这个组合参数是?-i?和?-t?的简写。
    • -i?或?--interactive:保持容器的标准输入打开。
    • -t?或?--tty:分配一个伪终端。
温馨提示

????通常,我们使用 docker run 命令来创建并启动容器。docker run 命令实际上在背后调用了 docker create 来创建容器,然后调用 docker start 来启动它。使用 run 命令是启动容器的标准做法,因为它简单且直接。

创建容器后的操作
  • 启动容器:

    docker start sad_meninsky 这个命令将启动之前使用?docker create?创建的名为?sad_meninsky的容器。

使用场景
  • 预先配置:如果我们需要在容器启动之前进行一些特定的配置或设置,可以先使用?create?创建容器,然后进行配置。
  • 分离创建和启动过程:在某些自动化脚本或容器编排工具中,可能需要先创建容器,再根据需要启动容器。
注意事项
  • 创建容器后,容器的状态会显示为?Created,直到我们使用?docker start?命令启动它。
  • 使用?docker create?创建的容器不会自动启动,这与?docker run?的行为不同。

通过使用 docker create,我们可以更细致地控制容器的生命周期,尤其是在需要精细控制容器创建和启动过程的场景中。

▌使用?docker diff?命令对比容器变化

????docker diff 命令用于展示 Docker 容器的文件系统变化,即比较容器运行过程中对文件系统所做的更改。这个命令对于调试容器内部的更改非常有用,尤其是当我们想要了解某个容器的文件系统发生了什么变化时。

使用?docker diff?的示例
代码语言:javascript
复制
docker diff admiring_mendel
C /etc
C /etc/nginx
C /etc/nginx/conf.d
C /etc/nginx/conf.d/default.conf
C /run
A /run/nginx.pid
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/scgi_temp
A /var/cache/nginx/uwsgi_temp
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp

这个命令会列出名为 admiring_mendel 的容器的文件系统变化,包括新增、删除或修改的文件和目录。

docker diff?的选项

目前,docker diff 命令没有特定的选项,但它接受一个容器的名称或 ID 作为参数。

注意事项
  • docker diff?只能显示容器文件系统的变化,不包括运行中的进程信息或其他非文件系统的状态变化。
  • 如果需要查看容器的实时状态,可以使用?docker inspect?命令。

通过 docker diff 命令,我们可以方便地跟踪和审查容器对文件系统所做的更改,这对于维护和调试容器非常有价值。

▌使用?docker export?导出容器文件系统

????docker export 命令允许我们将一个容器的文件系统导出成一个 tar 归档文件。这个命令对于备份容器的文件系统或迁移容器到另一个 Docker 主机非常有用。

docker export?的选项
  • -o?或?--output:指定输出的 tar 文件路径。如果不使用?-o?选项,tar 文件将被输出到标准输出,可以通过重定向操作符(>)将其重定向到文件。
使用?docker export?的示例
  • 使用 -o 选项导出容器:

    docker export -o five_minute_sre_nginx.tar.gz admiring_mendel 这个命令将名为 admiring_mendel 的容器的文件系统导出到名为 five_minute_sre_nginx.tar.gzz 的 tar 文件中。

  • 使用重定向导出容器:

    docker export admiring_mendel > five_minute_sre_nginx.v2.0.tar.gz 这个命令使用重定向操作符将容器的文件系统导出到一个 tar 文件中。

温馨提示
  • 导出容器文件系统到 tar 包后,可以使用?docker import?命令从该 tar 包中导入一个新的镜像。

▌使用?docker import?导入镜像

代码语言:javascript
复制
docker image import five_minute_sre_nginx.tar.gz       five_minute_sre_nginx:v1.0

????这个命令将 tar 文件 five_minute_sre_nginx.tar.gz 导入为一个新的 Docker 镜像,命名为 five_minute_sre_nginx 并打上标签 v1.0

注意事项
  • docker export?命令导出的是容器的文件系统,不包括容器的运行状态或配置。
  • 导出和导入的过程不包含容器的网络配置或存储卷。
  • 使用?docker import?导入的镜像不会保留原始容器的元数据。

通过 docker exportdocker import,我们可以方便地备份和迁移容器的文件系统,但要注意这只是一个文件系统级别的操作,不涉及容器的运行状态和其他配置。

▌使用?docker inspect?查看容器详细信息

????docker inspect 命令用于返回 Docker 对象的详细信息,如容器、镜像、卷或网络。默认情况下,它会以 JSON 格式输出结果,但可以通过 --format 选项使用 Go 的模板语法来格式化输出。

docker inspect?的选项
  • --format:使用 Go 的模板语法格式化输出。
  • --type:指定对象类型,如?containerimagevolume?或?network
使用?--format?的示例
  • 查看容器的 IP 地址:

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' admiring_mendel172.17.0.2 这个命令会输出容器 admiring_mendel 的 IP 地址。

  • 查看容器的 MAC 地址:

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' admiring_mendel02:42:ac:11:00:02 这个命令会输出容器 admiring_mendel 的 MAC 地址。

  • 查看容器的网关地址:

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' admiring_mendel172.17.0.1 这个命令会输出容器 admiring_mendel 的网关地址。

  • 查看特定网络接口的 IP 地址:

    docker inspect -f '{{.NetworkSettings.Networks.bridge.IPAddress}}' admiring_mendel172.17.0.2 这个命令会输出容器 admiring_mendel 使用 bridge 网络接口的 IP 地址。

  • 返回特定网络接口的详细信息:
代码语言:txt
复制
docker  inspect --format='{{json .NetworkSettings.Networks.bridge}}' admiring_mendel
{"IPAMConfig":null,"Links":null,"Aliases":null,"MacAddress":"02:42:ac:11:00:02","NetworkID":"266489f641ec4f3c5b89f8d7a3764a4a7ff66714620a65d47409eae9af0578f7","EndpointID":"1b825f2196c22320e9cac1c47afdc6da3c0e1f4b73c1b73c7209c73620a92755","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"DriverOpts":null,"DNSNames":null}

这个命令会以 JSON 格式返回容器 admiring_mendel ?使用 bridge 网络接口的详细信息。

注意事项
  • Go 的模板语法非常强大,可以用来提取 JSON 输出中的特定字段。
  • 如果字段名以数字开头,不能使用?.Field?语法,而应该使用模板语言的?index?函数。
  • 使用?--format?选项时,可以多次使用该选项来获取多个不同格式的输出。

通过 docker inspect,我们可以获取 Docker 对象的详细信息,对于调试、分析容器配置或自动化脚本编写非常有用。

▌使用?docker kill?命令停止容器运行

????docker kill 命令用于发送信号给一个或多个正在运行的 Docker 容器,以终止它们的运行。默认情况下,该命令发送 SIGKILL 信号,这是一个不能被忽略的信号,它会立即结束容器。

docker kill?的选项
  • --signal:指定要发送的信号。可以是信号名称(如?SIGINT)或信号的数字表示(如?2)。如果不指定信号,将默认发送?SIGKILL
使用?docker kill?的示例
  • 发送 SIGKILL 信号终止容器:

    docker kill admiring_mendel 这个命令将发送 SIGKILL 信号给名为 admiring_mendel的容器,立即停止容器的运行。

  • 发送自定义信号终止容器:

    docker kill --signal SIGHUP admiring_mendel 这个命令将发送 SIGHUP 信号给容器,这可能不会立即停止容器,具体取决于容器的主进程如何处理该信号。

温馨提示
  • docker stop?命令在发送停止信号之前会等待一段时间(默认为 10 秒),以允许容器优雅地关闭。如果容器在这段时间内没有停止,docker stop?将发送?SIGKILL?信号。
  • SIGKILL?和?SIGSTOP?是两个不能被忽略或阻塞的信号,它们将立即结束或停止容器的运行。

通过 docker kill 命令,我们可以根据需要发送不同的信号给容器,提供了比 docker stop 更多的灵活性。了解不同信号的行为对于控制容器的生命周期和处理信号是非常重要的。

▌使用?docker pause?暂停容器运行

????docker pause 命令用于暂停容器内所有进程的执行,但不会影响容器的网络连接和挂载的卷。这个命令可以用来临时冻结容器的状态,以便进行维护或检查。

docker pause?的选项
  • -f?或?--force:强制暂停容器,即使容器中运行的进程不会响应暂停请求。
使用?docker pause?的示例
  • 暂停容器:

    docker pause eager_mendel 这个命令将暂停名为?eager_mendel 的容器内的所有进程。

注意事项
  • 暂停容器是一个非破坏性的操作,容器的网络连接和卷挂载仍然保持活跃状态。
  • 被暂停的容器可以被恢复,使用?docker unpause?命令。
相关命令
  • 恢复容器:

    docker unpause eager_mendel 这个命令将恢复之前被暂停的容器。

  • 强制删除所有未使用的容器:

    docker prune -f 这个命令与 docker pause 不同,它用于删除所有未被容器镜像关联的悬空容器。

通过 docker pausedocker unpause 命令,我们可以灵活地控制容器的运行状态,而不会影响容器的配置和网络状态。这为容器的维护和管理提供了更多的选项。

▌使用?docker unpause?恢复暂停的容器

????docker unpause 命令用于恢复之前使用 docker pause 命令暂停的容器。当容器暂停时,其内部的所有进程都会冻结,但不会停止。使用 docker unpause 后,这些进程将继续执行,容器恢复到正常工作状态。

使用?docker unpause?的示例
代码语言:javascript
复制
docker unpause eager_mendel

这个命令将恢复名为 eager_mendel的容器的运行。

温馨提示
  1. 运行时间不重置:恢复暂停的容器不会重置容器的运行时间。容器的总运行时间将包括暂停前后的持续时间。
  2. 服务可访问性:一旦容器被恢复,容器内提供的服务将再次变得可访问,可以继续通过网络连接到这些服务。
注意事项
  • 容器暂停和恢复的操作是即时的,它们不会影响容器的网络连接或存储状态。
  • 暂停和恢复容器是 Docker 提供的用于管理和维护容器运行状态的工具,适用于需要临时冻结容器的场景。

通过 docker unpause 命令,我们可以轻松地管理容器的运行状态,实现对容器生命周期的灵活控制。

▌使用?docker port?查看容器端口映射信息

docker port 命令用于显示 Docker 容器的端口映射信息,即容器内部端口与宿主机端口之间的映射关系。

使用?docker port?的示例
  • 查看容器的所有端口映射信息:

    docker port eager_mendel 这个命令列出了名为 eager_mendel 的容器所有端口的映射信息。

  • 查看容器特定端口的映射信息:

    docker port eager_mendel80/tcp 这个命令显示了容器 eager_mendel 的 80 端口使用 TCP 协议的映射信息。

注意事项
  • 端口映射是在创建容器时通过?-p?或?-P?参数指定的。如果没有指定端口映射,容器的端口将不会映射到宿主机。
  • -p?参数允许我们指定具体的端口映射,而?-P?参数会将容器内部的所有端口随机映射到宿主机的高端口(默认从 32768 开始)。
  • 端口映射信息通常包括容器内部端口、协议(TCP 或 UDP)、宿主机端口。

通过 docker port 命令,我们可以方便地查看和验证容器的端口映射配置,确保容器的网络服务能够按预期从外部访问。

▌使用?docker prune?移除未使用的容器

????docker prune 命令是 Docker 提供的一个非常有用的命令,它允许我们一次性移除所有未使用的资源。对于容器而言,这包括所有未被镜像关联的悬空容器(即那些没有标签的容器,也称为 "dangling" 容器)。

使用?docker container prune?的示例
  • 移除所有未使用的容器:

    docker container prune -fDeleted Containers:f218e72b681ddb2a4973c0f7e952246088f9ec122ff85df094dabe2fb8f3c08da88f7080de30066169bcd4265aeda8f5dc741e3ac84a559865481c7f8b1cb691 Total reclaimed space: 1.095kB 这个命令将强制(-f?或?--force)移除所有未使用的容器。

注意事项
  • 使用?docker prune?命令时,需要确保我们确实不再需要这些未使用的容器,因为一旦执行,这些容器将被永久删除,且无法恢复。
  • 除了容器,docker prune?还可以用于移除未使用的镜像、卷、网络等资源。具体可以使用?docker image prunedocker volume prune?和?docker network prune?等命令。
  • 定期使用?docker prune?可以帮助清理 Docker 环境中的残留资源,优化性能并释放空间。

通过 docker prune 命令,我们可以有效地管理 Docker 资源,保持系统的整洁和高效运行。

▌使用?docker rename?为容器进行重命名操作

docker rename 命令用于重命名一个现有的 Docker 容器。我们可以使用容器的当前名称或 ID 来进行重命名。

使用?docker rename?的示例
  • 根据容器名称进行重命名

    docker rename eager_mendel five_minute_sre 这个命令将名为 eager_mendel 的容器重命名为 five_minute_sre 。

  • 根据容器 ID 进行重命名

    docker rename 25680370ee7f five_minute_sre 这个命令将 ID 为 25680370ee7f 的容器重命名为 five_minute_sre

注意事项
  • 重命名容器不会影响容器的运行状态或内部配置。
  • 重命名操作是即时的,一旦执行,容器将立即以新名称被识别。

通过 docker rename 命令,我们可以更容易地管理和识别容器,特别是在拥有大量容器时,一个有意义且独特的名称可以帮助快速定位和引用特定的容器。

▌使用?docker restart?重启容器

docker restart 命令用于重启一个或多个正在运行的 Docker 容器。这个命令会对容器进行优雅的重启,即先停止容器,再启动它。

docker restart?的选项
  • -t,?--time:指定重启前等待的时间(单位为秒)。如果不指定此参数,Docker 默认会等待 10 秒。
使用?docker restart?的示例
  • 指定等待时间后重启容器:

    docker restart -t 1 five_minute_sre 这个命令将在等待 1 秒后重启名为five_minute_sre 的容器。

  • 重启多个容器:

    docker restart five_minute_sre priceless_moore 这个命令将重启两个容器,分别是 five_minute_srepriceless_moore。重启操作是依次进行的,即先重启 five_minute_sre,然后再重启priceless_moore。

注意事项
  • 重启容器时,容器内部的应用程序将接收到停止信号,然后 Docker 会等待应用程序优雅地关闭。如果应用程序没有在指定的时间内关闭,Docker 将发送 SIGKILL 信号强制结束应用程序。
  • 重启操作不会影响容器的文件系统或配置,容器的 ID 和网络设置保持不变。
  • 默认等待时间:如果不指定?-t?参数,Docker 会默认等待 10 秒。这是因为?docker restart?命令实际上是先发送?stop?请求,然后发送?start?请求,两次操作之间有 10 秒的间隔。
  • 串行重启:当重启多个容器时,Docker 会依次重启每个容器,而不是并行执行。这意味着第一个容器重启完成后,才会开始重启第二个容器。

通过 docker restart 命令,我们可以方便地重启容器,这在需要重新加载配置或重启服务时非常有用。

▌使用?docker stats?查看容器的运行状态

docker stats 命令用于实时显示一个或多个容器的资源使用情况,包括 CPU、内存、网络 I/O 和块设备 I/O 等信息。

docker stats?的选项
  • --no-stream:禁用实时流,只显示一次结果。
  • -a?或?--all:显示所有容器的统计信息,包括未运行的容器。
使用?docker stats?的示例
  • 查看所有正在运行的容器的状态:
代码语言:txt
复制
docker statsCONTAINER ID   NAME              CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O     PIDS25680370ee7f   five_minute_sre   0.00%     6.824MiB / 7.712GiB   0.09%     3.18kB / 0B   0B / 4.1kB    9586f4392812c   priceless_moore   0.00%     7.117MiB / 7.712GiB   0.09%     3.88kB / 0B   0B / 12.3kB   9

  • 查看所有容器的状态(包括未运行的容器):

    docker stats --no-stream -a

  • 查看指定容器的状态:

    docker stats --no-stream five_minute_sre

  • 以 JSON 格式查看指定容器的状态:

    docker stats --no-stream --format "{{ json . }}" five_minute_sre | jq{ "BlockIO": "0B / 4.1kB", "CPUPerc": "0.00%", "Container": "five_minute_sre", "ID": "25680370ee7f", "MemPerc": "0.09%", "MemUsage": "6.824MiB / 7.712GiB", "Name": "five_minute_sre", "NetIO": "3.36kB / 0B", "PIDs": "9"} 这里使用了 --format 选项来格式化输出为 JSON 格式,并通过 jq 命令对 JSON 进行解析。

  • 自定义格式查看容器状态:

    docker stats --no-stream --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" five_minute_sre 这个命令定制了输出的格式,只显示了容器名称或 ID、CPU 百分比和内存使用情况。

输出字段含义
  • CONTAINER ID:容器的 ID。
  • NAME:容器的名称。
  • CPU %:容器使用的 CPU 百分比。
  • MEM USAGE / LIMIT:容器使用的内存和内存限制。
  • MEM %:容器使用的内存百分比。
  • NET I/O:容器通过网络接口发送和接收的数据量。
  • BLOCK I/O:容器从主机上的块设备读取和写入的数据量。
  • PIDS:容器创建的进程或线程数。
注意事项
  • 实时模式会持续输出容器的资源使用情况,直到我们停止该命令。
  • 使用?--no-stream?选项可以获取容器的一次性快照。

通过 docker stats 命令,我们可以方便地监控容器的资源使用情况,这对于性能调优和资源规划非常有用。

▌使用?docker top?查看容器的进程信息

????docker top 命令用于显示指定容器内部的进程信息,类似于在容器内部执行 topps 命令。这对于诊断容器内部的应用程序和性能问题非常有用。

docker top?的选项
  • -o?或?--order:通过指定的字段对输出进行排序。默认情况下,进程列表是按照进程 ID 排序的。
使用?docker top?的示例
  • 查看容器的进程信息:

    docker top five_minute_sreUID PID PPID C STIME TTY TIME CMDroot 6806 6783 0 05:32 pts/0 00:00:00 nginx: master process nginx -g daemon off;systemd+ 6845 6806 0 05:32 pts/0 00:00:00 nginx: worker processsystemd+ 6846 6806 0 05:32 pts/0 00:00:00 nginx: worker processsystemd+ 6847 6806 0 这个命令将显示名为?five_minute_sre的容器内部的进程信息。

输出字段含义

docker top 命令的输出通常包括以下字段:

  • PID:容器内部的进程 ID。
  • USER:运行进程的用户。
  • PR:进程的优先级。
  • NI:nice 值,用于调整进程的优先级。
  • VIRT:进程虚拟内存的使用量。
  • RES:进程占用的物理内存。
  • SHR:共享内存的大小。
  • S:进程的状态(如 S 代表睡眠,R 代表运行等)。
  • %CPU:进程使用的 CPU 百分比。
  • %MEM:进程使用的内存百分比。
  • TIME+:自进程启动以来消耗的累计 CPU 时间。
  • COMMAND:启动进程的命令。
注意事项
  • docker top?命令仅显示容器内部的进程,不包括宿主机的进程。
  • 为了获取更详细的信息,可以考虑在容器内部运行?top?或?htop?等工具。

通过 docker top 命令,我们可以方便地查看容器内部的进程状态,这对于管理和调试容器内部的应用程序非常有价值。

▌使用?docker update?更新容器的配置

????docker update 命令用于更新 Docker 容器的配置,主要包括内存和 CPU 限制。这个命令对于资源管理非常重要,可以帮助管理员控制容器可以使用的资源量,以确保系统的稳定运行。

docker update?的选项
  • -m?或?--memory:设置容器的内存限制。
  • --memory-swap:设置容器的总内存和交换分区的大小(包括内存限制)。
  • --cpus:设置容器可以使用的 CPU 核心数。
使用?docker update?的示例
  • 更新容器的内存限制:

    docker update -m 200000000 --memory-swap 200000000 five_minute_sre 这个命令将名为?five_minute_sre 的容器的内存限制更新为约 200MB,并将总内存和交换分区的大小设置为 200MB。

注意事项
  • docker update?命令只能用于更新正在运行的容器的资源限制。
  • 更新资源限制时,需要确保新的限制不会影响容器内应用程序的正常运行。

通过 docker update 命令,我们可以动态调整容器的资源限制,而不需要重新创建或停止容器,这为资源管理和优化提供了极大的灵活性。

▌使用?docker wait?命令查看容器的退出状态

????docker wait 命令用于等待一个或多个容器停止运行,通常用于在容器完成其任务后需要执行某些操作的场景。

docker wait?的选项
  • --condition:指定等待的条件。默认情况下,docker wait?会等待容器停止(退出),但可以使用?--condition?来指定其他条件,如?not-running?或?next-exit
使用?docker wait?的示例
  • 等待容器退出并返回状态码:

    docker wait five_minute_sre 这个命令将等待名为?five_minute_sre 的容器退出,并返回容器的退出状态码。

注意事项
  • docker wait?命令在容器停止时返回容器的退出状态码,这个状态码可以用于脚本或程序中,判断容器是否成功完成任务或发生了错误。
  • 如果容器已经停止,docker wait?会立即返回该容器的退出状态码。
退出状态码的含义
  • 退出状态码 0:通常表示容器成功完成了其任务。
  • 非零退出状态码:通常表示容器在执行任务时遇到了错误或异常。

通过 docker wait 命令,我们可以同步容器的运行状态,确保在容器停止后再执行后续操作,这在自动化脚本和容器编排中非常有用。

小结

??? Docker 容器管理是 Docker 技术的核心,它提供了一套完整的工具集,让我们能够以高效和灵活的方式控制容器的生命周期。Docker 的命令行工具支持多种参数,以适应不同的使用场景和个性化需求。

在本文中,我们详细探讨了 Docker 容器管理的关键方面,包括:

  • 容器生命周期管理:如何使用?docker container ls?列出容器,docker run?启动新容器,docker stop?和?docker start?分别停止和启动容器,以及?docker rm?删除容器。
  • 容器操作:如何使用?docker exec?在运行的容器中执行命令,docker logs?查看容器日志,以及?docker stats?实时监控容器资源使用情况。
  • 容器信息和状态:如何使用?docker inspect?获取容器的详细信息,docker kill?发送信号给容器,以及?docker container prune?清理未使用的容器资源。
  • 高级功能:如何使用?docker update?更新容器的资源限制,docker wait?等待容器停止并获取退出状态,以及使用?docker top?查看容器内部的进程信息。

通过这些命令的详细介绍和示例,我们应该能够更加熟练地管理 Docker 容器,提高开发、测试和运维的效率。掌握这些基础知识,将使我们能够更深入地探索 Docker 的高级功能,如网络配置、数据卷管理、以及与 Docker Compose 和 Docker Swarm 等容器编排工具的集成。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 容器命令概述
    • ▌容器生命周期管理
      • ▌核心命令:日常容器操作的基石
        • ▌辅助命令:高级功能与特定场景的利器
          • ▌使用"ls"查看容器列表
            • 命令选项
            • 查看容器列表的参考案例
            • 命令别名
            • 输出字段含义
          • ▌使用"run"启动容器
            • docker run 参数概览
            • 容器启动流程详解
            • 附加配置选项
            • 架构图解析
            • 示例与应用
            • 注意事项
          • ▌使用"stop"停止容器运行
            • docker stop 命令用于终止一个或多个正在运行的 Docker 容器。当容器中运行的应用程序结束时,容器会进入终止状态。这是因为容器的主进程(通常是启动时指定的命令)一旦退出,容器就没有了继续执行的理由。
              • docker stop 的选项
              • 容器终止后的管理
              • 使用 docker stop 的示例
              • 注意事项
            • ▌使用"start"启动容器
              • ▌进入 Docker 容器的常见方法
                • 使用?docker attach?命令
                • 使用?nsenter?工具
                • 其他方法
              • ▌使用"cp"拷贝文件
                • docker cp?的选项
                • 使用?docker cp?的示例
                • 注意事项
              • ▌使用?docker exec?在运行的容器中执行命令
                • docker exec?的常用选项
                • 使用?docker exec?的示例
                • 注意事项
              • ▌使用?docker logs?查看容器日志信息
                • docker logs?的常用选项
                • 使用?docker logs?的示例
                • 注意事项
              • ▌使用?docker rm?删除容器
                • docker rm?的选项
                • 使用?docker rm?的示例
                • 批量删除容器
                • 注意事项
              • ▌docker commit?从容器创建新镜像
                • docker commit?的选项
                • 使用?docker commit?的示例
                • 注意事项
              • ▌docker create?创建容器但不启动
                • 使用?docker create?的示例
                • docker create?的选项
                • 温馨提示
                • 创建容器后的操作
                • 使用场景
                • 注意事项
              • ▌使用?docker diff?命令对比容器变化
                • 使用?docker diff?的示例
                • docker diff?的选项
                • 注意事项
              • ▌使用?docker export?导出容器文件系统
                • docker export?的选项
                • 使用?docker export?的示例
                • 温馨提示
              • ▌使用?docker import?导入镜像
                • 注意事项
              • ▌使用?docker inspect?查看容器详细信息
                • docker inspect?的选项
                • 使用?--format?的示例
                • 注意事项
              • ▌使用?docker kill?命令停止容器运行
                • docker kill?的选项
                • 使用?docker kill?的示例
                • 温馨提示
              • ▌使用?docker pause?暂停容器运行
                • docker pause?的选项
                • 使用?docker pause?的示例
                • 注意事项
                • 相关命令
              • ▌使用?docker unpause?恢复暂停的容器
                • 使用?docker unpause?的示例
                • 温馨提示
                • 注意事项
              • ▌使用?docker port?查看容器端口映射信息
                • 使用?docker port?的示例
                • 注意事项
              • ▌使用?docker prune?移除未使用的容器
                • 使用?docker container prune?的示例
                • 注意事项
              • ▌使用?docker rename?为容器进行重命名操作
                • 使用?docker rename?的示例
                • 注意事项
              • ▌使用?docker restart?重启容器
                • docker restart?的选项
                • 使用?docker restart?的示例
                • 注意事项
              • ▌使用?docker stats?查看容器的运行状态
                • docker stats?的选项
                • 使用?docker stats?的示例
                • 输出字段含义
                • 注意事项
              • ▌使用?docker top?查看容器的进程信息
                • docker top?的选项
                • 使用?docker top?的示例
                • 输出字段含义
                • 注意事项
              • ▌使用?docker update?更新容器的配置
                • docker update?的选项
                • 使用?docker update?的示例
                • 注意事项
              • ▌使用?docker wait?命令查看容器的退出状态
                • docker wait?的选项
                • 使用?docker wait?的示例
                • 注意事项
                • 退出状态码的含义
              • 小结
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
              http://www.vxiaotou.com