Ubuntu 24.04 Docker CLI 常用命令与运维指南
详解 Ubuntu 24.04 的 Docker CLI 常用命令与运维,覆盖镜像管理、运行实例生命周期、网络、数据卷、日志监控与安全配置,所有命令与回显均为 Ubuntu 24.04 实测结果
Ubuntu 24.04 Docker CLI 常用命令与运维指南
目标:详解 Ubuntu 24.04 上 Docker CLI 的镜像管理、运行实例生命周期、网络、数据卷、日志监控命令与运维配置。所有命令与回显均为 Ubuntu 24.04 实测结果。
一、环境信息
- 操作系统:Ubuntu 24.04.5 LTS(noble)
- Docker:Docker CE
29.8.2(Server Version 29.8.2,API 1.56) - 存储驱动:vfs(模拟/特殊内核环境下配置,真实服务器默认为 overlay2)
二、docker CLI 概览
1. docker version 查看客户端与服务端版本
docker version
Client: Docker Engine - Community
Version: 29.8.2
API version: 1.56
Go version: go1.26.8
Git commit: 7fc2dff
Built: Wed Sep 30 19:32:28 2026
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 29.8.2
API version: 1.56 (minimum version 1.40)
Go version: go1.26.8
Git commit: 8af9fe3
OS/Arch: linux/amd64
containerd:
Version: v2.3.6
runc:
Version: 1.5.1
docker-init:
Version: 0.19.0
2. docker info 查看运行环境
docker info
Client: Docker Engine - Community
Version: 29.8.2
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.37.1
compose: Docker Compose (Docker Inc.)
Version: v5.6.0
Server:
Containers: 2
Running: 2
Images: 3
Server Version: 29.8.2
Storage Driver: vfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Kernel Version: 6.8.0-138-generic
Operating System: Ubuntu 24.04.5 LTS
OSType: linux
Docker Root Dir: /var/lib/docker
Registry Mirrors:
https://docker.1ms.run/
三、镜像管理(search / pull / images / rmi / tag / save / load / inspect)
1. search 搜索镜像
docker search nginx
⚠️ 实测:国内网络下直连
index.docker.io被拒,回显为Error response from daemon: Get "https://index.docker.io/v1/search?q=nginx&n=25": dial tcp ...:443: connect: connection refused。搜索接口走 Docker Hub 官方域名,需代理或可访问该域名的网络环境;拉取镜像不受影响(走镜像加速)。
2. pull 拉取镜像
docker pull alpine
Digest: sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
3. images 列出镜像
docker images
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
alpine:latest 320994c3b997 8.42MB 0B
hello-world:latest e2ac70e7319a 10.1kB 0B
nginx:latest 57df7715e516 163MB 0B U
redis:7-alpine f84b0c467801 39.1MB 0B U
💡 Docker 29.x 输出新增 DISK USAGE / CONTENT SIZE 列,
U表示镜像当前正被运行实例使用。
4. tag 打标签 / rmi 删除镜像
docker tag alpine ubuntu-test/alpine:demo
docker rmi ubuntu-test/alpine:demo
Untagged: ubuntu-test/alpine:demo
💡 rmi 按标签删除;同一镜像 ID 有多个标签时只移除指定标签。
5. save / load 镜像导出与导入(离线迁移)
docker save alpine -o /tmp/alpine.tar
ls -lh /tmp/alpine.tar
docker load -i /tmp/alpine.tar
-rw------- 1 root root 8.4M Oct 7 06:29 /tmp/alpine.tar
Loaded image: alpine:latest
💡 save 导出为 tar(可压缩为 .tar.gz),load 在目标机器导入,适合离线环境镜像迁移。
6. inspect 查看详情
docker inspect alpine-demo
"Id": "a3543d16b8bc756a542f55579176987c0c19e3aaf3e9b80279c37e6e04d74723",
"Image": "sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8",
"Driver": "vfs",
"NetworkMode": "bridge",
"RestartPolicy": {
四、运行实例生命周期(run / ps / start / stop / restart / rm / exec / stats)
1. run 创建并运行
docker run -d --name alpine-demo alpine sleep 3600
docker run --rm alpine echo "hello-alpine"
a3543d16b8bc756a542f55579176987c0c19e3aaf3e9b80279c37e6e04d74723
hello-alpine
💡
-d后台运行;--rm执行完即自动清理;--name指定名称。
2. ps 查看运行列表
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3543d16b8bc alpine "sleep 3600" 1 second ago Up Less than a second alpine-demo
5473ae8f90c9 redis:7-alpine "docker-entrypoint.s…" 59 seconds ago Up 56 seconds 6379/tcp redis
743fc958f5ba nginx:latest "/docker-entrypoint.…" 59 seconds ago Up 57 seconds 0.0.0.0:80->80/tcp, [::]:80->80/tcp web
💡
docker ps -a查看全部(含已停止)。
3. start / stop / restart
docker stop alpine-demo
docker start alpine-demo
docker restart alpine-demo
alpine-demo
alpine-demo
alpine-demo
4. exec 进入运行中的实例执行命令
docker exec alpine-demo uname -r
6.8.0-138-generic
5. stats 实时资源占用
docker stats --no-stream alpine-demo web redis
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
a3543d16b8bc alpine-demo 0.00% 0B / 0B 0.00% 736B / 126B 0B / 0B 1
743fc958f5ba web 0.00% 0B / 0B 0.00% 2.62kB / 1.42kB 0B / 0B 7
5473ae8f90c9 redis 0.57% 0B / 0B 0.00% 1.1kB / 126B 0B / 0B 6
💡
--no-stream只输出一次;不加则持续刷新(Ctrl+C 退出)。真实服务器上 MEM USAGE 正常显示数值。
6. rm 删除
docker rm -f alpine-demo
alpine-demo
💡
-f强制删除运行中的实例。
五、网络(network ls / create / inspect / connect)
1. ls 查看网络
docker network ls
NETWORK ID NAME DRIVER SCOPE
bc671aac7a9b bridge bridge local
86a64b06ae00 docker_default bridge local
70cceb3305b5 host host local
2e765a4f9854 none null local
2. create 创建网络
docker network create demo-net
7211f394582b64c8052478dc4b74b2bba9ff628c6c407db43a9a1e773d2beb7c
3. inspect 查看网络详情
docker network inspect demo-net
"Name": "demo-net",
"Driver": "bridge",
"EnableIPv4": true,
4. connect 连接网络
docker network connect demo-net alpine-demo
docker network inspect demo-net
connect-ok
💡 默认创建的 bridge 网络内各实例互通;
connect可让实例加入自定义网络,实现多网络隔离/联通。断开用docker network disconnect,删除网络用docker network rm。
六、数据卷(volume ls / create / inspect)
1. ls / create
docker volume ls
docker volume create demo-vol
DRIVER VOLUME NAME
demo-vol
2. inspect 查看挂载点
docker volume inspect demo-vol
[
{
"CreatedAt": "2026-10-07T06:29:53Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/demo-vol/_data",
"Name": "demo-vol",
"Options": null,
"Scope": "local"
}
]
💡 卷数据保存在
/var/lib/docker/volumes/<名称>/_data,删除实例不丢数据。也可以用-v /宿主机路径:/内路径做目录绑定挂载(见 Compose 指南)。
七、日志与监控(logs / events / top / stats)
1. logs 查看日志
docker logs --tail 3 web
2026/10/07 06:28:25 [notice] 1#1: start worker process 35
172.19.0.1 - - [07/Oct/2026:06:28:30 +0000] "GET / HTTP/1.1" 200 29 "-" "curl/8.5.0" "-"
172.19.0.1 - - [07/Oct/2026:06:28:30 +0000] "GET / HTTP/1.1" 200 29 "-" "curl/8.5.0" "-"
💡
-f持续跟踪,--tail N只看末尾 N 行,--since按时间过滤。
2. events 事件流
docker events --since 60s --until 5s
2026-10-07T06:29:14.071198981Z image pull alpine:latest (name=alpine)
2026-10-07T06:29:14.178737531Z image tag sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8 (name=ubuntu-test/alpine:demo)
2026-10-07T06:29:14.363999090Z image save sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8 (name=sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8)
2026-10-07T06:29:14.507870695Z image untag sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8 (name=sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8)
2026-10-07T06:29:14.582484440Z image load sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8 (name=sha256:320994c3b997e2ec6433f717f153e108023c5bec8fefa8d76b83451d16d05ea8)
💡 事件流含 pull/tag/save/load/create/start 等全部变更,审计与联动告警常用。
3. top 查看实例内进程
docker top web
UID PID PPID C STIME TTY TIME CMD
root 3464 3439 0 06:28 ? 00:00:00 nginx: master process nginx -g daemon off;
101 3535 3464 0 06:28 ? 00:00:00 nginx: worker process
八、系统与安全运维(daemon.json 配置 / 用户组 / systemctl 管理)
1. daemon.json 配置镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": ["https://docker.1ms.run", "https://docker.m.daocloud.io"]
}
EOF
💡 特殊内核环境下 overlay 挂载失败时,在上方 daemon.json 中追加
"storage-driver":"vfs"并systemctl restart docker即可。
2. 当前用户加入 docker 组
usermod -aG docker $USER
newgrp docker
💡 加入后无需 sudo 即可执行 docker 命令;需重新登录或
newgrp docker生效。
3. systemctl 管理服务
systemctl enable docker
systemctl start docker
systemctl restart docker
systemctl status docker
⚠️ 需要 systemd 的真实服务器(本文在无 systemd 环境中以
nohup dockerd后台方式验证,命令与真实服务器一致)。
4. 无 systemd 环境手动启动
kill $(cat /var/run/docker.pid) 2>/dev/null; sleep 2
nohup dockerd > /var/log/dockerd.log 2>&1 &
sleep 10
docker info | grep "Server Version"
Server Version: 29.8.2
九、常见问题与真实行为
-
docker search 连接被拒:搜索接口走 Docker Hub 官方域名(index.docker.io),国内直连不稳定;拉取走镜像加速不受影响。
-
拉取镜像失败:配置 daemon.json 镜像加速并
systemctl restart docker或重启 dockerd 后重试。 -
overlay 挂载失败:日志报
failed to mount overlay: invalid argument时配置"storage-driver":"vfs";真实物理机默认 overlay2。 -
stats 内存显示 0B:特殊内核环境下 cgroup 内存统计不可用时显示 0B / 0B;真实服务器正常显示。
-
端口冲突:
docker run -p 80:80报port is already allocated时更换宿主端口。
十、命令与参数速查表
| 命令 | 作用 | 常用参数 |
|---|---|---|
| docker version / info | 版本与环境信息 | - |
| docker search / pull / images | 搜索、拉取、列出镜像 | pull 后可跟 tag;images -a |
| docker rmi | 删除镜像 | -f 强制 |
| docker tag | 打标签 | - |
| docker save / load | 导出 / 导入镜像 | -o 文件 / -i 文件 |
| docker inspect | 查看镜像或实例详情 | - |
| docker run | 创建并启动 | -d 后台;--name;--rm;-p 端口;-v 挂载 |
| docker ps | 查看运行列表 | -a 全部 |
| docker start / stop / restart | 启停与重启 | - |
| docker rm | 删除实例 | -f 强制 |
| docker exec | 进入执行命令 | -it 交互 |
| docker stats | 资源统计 | --no-stream 单次 |
| docker network ls / create / inspect / connect / disconnect / rm | 网络管理 | -d 驱动 |
| docker volume ls / create / inspect / rm | 数据卷管理 | - |
| docker logs | 查看日志 | -f 跟踪;--tail N;--since |
| docker events | 事件流 | --since / --until |
| docker top | 实例内进程 | - |