Docker - 容器
Docker - 容器
Section titled “Docker - 容器”容器是 Docker 镜像的运行实例。它们封装了应用程序及其依赖项。Docker 的主要目的是构建、分发和 运行 容器。本章重点介绍容器生命周期的管理。
运行容器 (docker run)
Section titled “运行容器 (docker run)”创建和启动容器的基本命令是 docker run。我们已经看了一些基本示例,让我们回顾一下交互式运行:
# Run a container from the 'ubuntu' image, interactively (-it), and start a bash shell# 从 'ubuntu' 镜像运行一个容器,使用交互模式 (-it),并在其内部启动一个 bash shelldocker run -it ubuntu bash这将启动容器,连接您的终端,并在其中运行 bash 命令。您可以使用 Ctrl+P, Ctrl+Q 分离(detach),保留容器在后台运行,或者输入 exit 来停止它。
要在后台(分离模式)运行容器,请使用 -d 标志:
# Run an nginx container in the background# 在后台运行一个 nginx 容器docker run -d --name my-web-server nginx此命令启动容器并打印容器 ID,然后返回到主机的 shell 提示符。
列出容器 (docker ps)
Section titled “列出容器 (docker ps)”要查看系统上当前 正在运行 的容器,请使用 docker ps(或 docker container ls)。
docker ps输出列通常包括:
CONTAINER ID: 唯一的 ID(显示短版本)。IMAGE: 容器基于的镜像。COMMAND: 在容器内部执行的命令。CREATED: 容器创建以来的时间。STATUS: 当前状态(例如,‘Up 2 minutes’,‘Exited (0) 5 seconds ago’)。PORTS: 端口映射(例如,0.0.0.0:8080->80/tcp)。NAMES: 分配给容器的名称(如果未使用--name指定,则自动生成)。
列出所有容器 (docker ps -a)
Section titled “列出所有容器 (docker ps -a)”要查看 所有 容器,包括已停止或退出的容器,请添加 -a 标志:
docker ps -a这对于查看短暂运行后退出的容器,或者您手动停止的容器很有用。
查看容器历史(镜像层 - docker history)
Section titled “查看容器历史(镜像层 - docker history)”docker history 命令并不显示在容器实例 内部 运行的命令,而是显示 镜像本身的构建历史,一层一层地展示。它显示了创建每一层的 Dockerfile 中的命令。
# Show the build history of the 'nginx:latest' image# 显示 'nginx:latest' 镜像的构建历史docker history nginx:latest这有助于理解镜像的结构。
查看容器日志 (docker logs)
Section titled “查看容器日志 (docker logs)”要查看在容器内部运行的主进程生成的输出(stdout/stderr),请使用 docker logs。
# Show logs for the container named 'my-web-server'# 显示名为 'my-web-server' 的容器的日志docker logs my-web-server
# Follow logs in real-time (like tail -f)# 实时跟踪日志(类似于 tail -f)docker logs -f my-web-server
# Show the last 10 lines of logs# 显示日志的最后 10 行docker logs --tail 10 my-web-server这对于调试在容器中运行的应用程序至关重要。
停止和启动容器
Section titled “停止和启动容器”您可以停止和重新启动现有容器:
# Stop the container named 'my-web-server' gracefully (sends SIGTERM, then SIGKILL)# 优雅地停止名为 'my-web-server' 的容器(发送 SIGTERM 信号,然后是 SIGKILL)docker stop my-web-server
# Start a stopped container# 启动一个已停止的容器docker start my-web-server
# Restart a running or stopped container# 重新启动一个正在运行或已停止的容器docker restart my-web-server
# Forcefully stop a container immediately (sends SIGKILL)# 立即强制停止容器(发送 SIGKILL 信号)docker kill my-web-server移除容器 (docker rm)
Section titled “移除容器 (docker rm)”当您不再需要某个容器时,可以使用 docker rm 将其移除。容器必须先停止才能被移除。
# Stop the container first (if running)# 先停止容器(如果正在运行)docker stop my-web-server
# Remove the stopped container# 移除已停止的容器docker rm my-web-server
# Force remove a running container (stops and removes)# 强制移除正在运行的容器(停止并移除)docker rm -f my-web-server清理容器 (Pruning)
Section titled “清理容器 (Pruning)”要轻松移除所有已停止的容器:
docker container prune这个命令会提示您确认。