---
url: https://eoht.net/fe/docker/process.md
description: >-
  区分 Docker daemon 与容器生命周期，介绍 systemd 服务启停、版本和日志检查，以及 docker top、docker stats
  查看容器进程和资源占用的方法。
---

# Docker 服务管理与容器进程查看 {#docker-process-management}

本文的 `systemctl` 命令适用于使用 systemd 管理 Docker Engine 的 Linux 主机。Docker Desktop 应通过桌面应用管理；Rootless Docker 通常使用 `systemctl --user`，不能直接套用系统级服务命令。

Docker daemon 管理整台主机上的容器。仅需重启一个应用时，应操作对应容器，而不是重启整个 Docker 服务。执行 Docker 命令的账户需要已有的 Docker 访问权限。

## 查看 docker 版本 {#check-docker-version}

```bash
docker -v
```

## 查看 docker 命令 {#list-docker-commands}

```bash
docker --help
```

## 查看 docker 服务端与客户端版本详情 {#inspect-docker-client-server-versions}

```bash
docker version
```

## 启动 docker {#start-docker-daemon}

```bash
sudo systemctl start docker
sudo systemctl is-active docker
```

## 关闭 docker {#stop-docker-daemon}

先用 `docker ps` 确认受影响的应用并安排停机。停止 daemon 可能中断容器；是否继续运行还受 live-restore 等配置影响。若需完全停止服务，还应检查 `docker.socket` 是否启用，避免后续 Docker 客户端请求再次激活服务。

```bash
sudo systemctl stop docker
sudo systemctl is-active docker
```

## 重启 docker {#restart-docker-daemon}

```bash
sudo systemctl restart docker
sudo systemctl is-active docker
docker ps
```

## 查看 docker 运行状态 {#check-docker-daemon-status}

```bash
sudo systemctl status docker --no-pager
sudo journalctl -u docker -n 100 --no-pager
```

`docker version` 只有 Client 信息、没有 Server 信息时，检查 daemon 状态、当前 Docker context 和访问权限；不要仅凭这一个现象判断为防火墙问题。

## 查看容器进程和资源占用 {#inspect-container-processes}

先找到目标容器。下面的 `my-container` 是示例名，使用前替换为 `docker ps -a` 中的实际名称。

```bash
docker ps -a
docker top my-container
docker stats --no-stream my-container
docker logs --tail 100 my-container
```

`docker top` 显示正在运行的容器进程，`docker stats` 查看 CPU、内存和 I/O 等统计；去掉 `--no-stream` 可持续观察，按 `Ctrl+C` 退出。它们用于定位资源占用，不会自动优化应用。

需要改变容器状态时，按需选择一条命令执行；`stop`、`start` 和 `restart` 作用于指定容器。

```bash
docker stop my-container
docker start my-container
docker restart my-container
```

操作后重新查看 `docker ps -a` 与应用日志，并从客户端检查应用是否可用；容器处于 Running 状态不等于应用已完成启动。

## 防火墙与访问排查 {#disable-system-firewall}

Docker 服务管理不需要先停用 firewalld。应用无法访问时，先核对容器日志、`docker port my-container` 的端口映射和应用监听地址，再检查宿主机规则与云安全组。只放行实际需要的端口，具体步骤见 [防火墙开放端口](/vps/settings/firewall-port)。

参考：[Docker daemon 启动文档](https://docs.docker.com/engine/daemon/start/)、[docker top](https://docs.docker.com/reference/cli/docker/container/top/)、[docker stats](https://docs.docker.com/reference/cli/docker/container/stats/)。
