Docker 服务管理与容器进程查看
本文的 systemctl 命令适用于使用 systemd 管理 Docker Engine 的 Linux 主机。Docker Desktop 应通过桌面应用管理;Rootless Docker 通常使用 systemctl --user,不能直接套用系统级服务命令。
Docker daemon 管理整台主机上的容器。仅需重启一个应用时,应操作对应容器,而不是重启整个 Docker 服务。执行 Docker 命令的账户需要已有的 Docker 访问权限。
查看 docker 版本
bash
docker -v查看 docker 命令
bash
docker --help查看 docker 服务端与客户端版本详情
bash
docker version启动 docker
bash
sudo systemctl start docker
sudo systemctl is-active docker关闭 docker
先用 docker ps 确认受影响的应用并安排停机。停止 daemon 可能中断容器;是否继续运行还受 live-restore 等配置影响。若需完全停止服务,还应检查 docker.socket 是否启用,避免后续 Docker 客户端请求再次激活服务。
bash
sudo systemctl stop docker
sudo systemctl is-active docker重启 docker
bash
sudo systemctl restart docker
sudo systemctl is-active docker
docker ps查看 docker 运行状态
bash
sudo systemctl status docker --no-pager
sudo journalctl -u docker -n 100 --no-pagerdocker version 只有 Client 信息、没有 Server 信息时,检查 daemon 状态、当前 Docker context 和访问权限;不要仅凭这一个现象判断为防火墙问题。
查看容器进程和资源占用
先找到目标容器。下面的 my-container 是示例名,使用前替换为 docker ps -a 中的实际名称。
bash
docker ps -a
docker top my-container
docker stats --no-stream my-container
docker logs --tail 100 my-containerdocker 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 状态不等于应用已完成启动。
防火墙与访问排查
Docker 服务管理不需要先停用 firewalld。应用无法访问时,先核对容器日志、docker port my-container 的端口映射和应用监听地址,再检查宿主机规则与云安全组。只放行实际需要的端口,具体步骤见 防火墙开放端口。