Administrator
Published on 2026-01-27 / 6 Visits
0
0

Docker 常用命令科普 ——镜像、容器、网络、日志与运维全流程速查


Docker 的问题从来不是“命令太多”,
而是 不知道现在该管的是镜像、容器,还是网络

这篇文章把最常见、最实用的 Docker 命令,
按运维思维重新整理一遍


一、镜像相关:Docker 世界的“安装包”

1️⃣ 查看本地镜像

docker images

用途:

  • 查看有哪些镜像

  • 判断镜像版本是否齐全

  • 排查磁盘占用


2️⃣ 查看镜像详细信息

docker inspect IMAGE_ID
docker inspect IMAGE_NAME

可以看到:

  • 镜像层信息

  • 创建时间

  • 架构

  • 环境变量

  • 默认启动命令

排“这个镜像到底干了什么”必用


3️⃣ 从远程仓库拉取镜像

docker pull nginx:alpine
  • alpine:体积小、启动快

  • 非常适合生产环境


4️⃣ 给镜像打 tag(推私有仓库必会)

docker tag nginx:alpine 172.21.51.143:5000/nginx:alpine

本质:换个名字,不复制数据


5️⃣ 本地构建镜像

docker build . -t my-nginx:ubuntu -f Dockerfile

适合:

  • 定制环境

  • 内部应用

  • 国产化 / 离线环境


6️⃣ 导出 / 导入镜像(离线神器)

docker save -o nginx-alpine.tar nginx:alpine
docker load -i nginx-alpine.tar

内网、隔离环境、无仓库场景必备


7️⃣ 删除镜像

docker rmi nginx_1111
docker rmi -f nginx_1111   # 不建议,除非你很清楚后果

二、容器相关:真正“在跑”的东西

1️⃣ 查看运行中的容器

docker ps

查看所有(包括已停止):

docker ps -a

2️⃣ 查看最近创建的容器

docker ps -l

3️⃣ 创建容器(不启动)

docker create -it image_name

4️⃣ 启动容器

docker start container_id

5️⃣ 新建并启动容器(最常用)

docker run -it centos /bin/bash

参数说明:

  • -i:打开标准输入

  • -t:分配伪终端

  • 调试容器必加


6️⃣ 后台运行容器

docker run --name my-nginx-alpine -d nginx:alpine

7️⃣ 重启容器

docker restart 容器ID

8️⃣ 停止 / 删除容器

docker stop mynginx
docker rm nginx2
docker rm -f my-nginx-alpine   # 强制删除

三、进入容器:90% 排障从这里开始

1️⃣ 进入容器(最常用)

docker exec -it 容器ID /bin/bash
docker exec -ti nginx bash

不是虚拟机,但体验非常像

进入后你可以:

ps aux

2️⃣ 查看容器内进程

docker top wizardly_chandrasekhar

四、日志与数据:排障核心

1️⃣ 查看容器日志

docker logs -f --tail 100 容器ID

含义:

  • --tail 100:最后 100 行

  • -f:实时跟踪


2️⃣ 从容器拷贝文件到宿主机

docker cp 容器ID:/data/app/logs/xxx.log /tmp/xxx.log

通用写法:

docker cp Name:/container_path to_path
docker cp ID:/container_path to_path

日志取证、问题分析非常关键


五、网络与端口:容器“能不能被访问”

1️⃣ 查看 Docker 网络

docker network ls
docker network inspect my_net

2️⃣ 查看容器 IP

docker network inspect

3️⃣ 查看端口映射

docker port mymysql
docker port container_name

4️⃣ 宿主机访问容器服务

docker run --name my-nginx-alpine -d -p 8080:80 nginx:alpine
curl 172.21.51.143:8080

8080:80 = 宿主机端口 : 容器端口


5️⃣ 查看 iptables 映射规则

iptables -t nat -vnL

排查“端口映射为什么不通”时非常重要。


六、数据持久化:容器不是一次性的

目录挂载

docker run -itd -P --name web2 -v /data:/data centos_nginx:1.10 bash

含义:

  • /data(宿主机) ↔ /data(容器)

  • 容器删了,数据还在


七、导入 / 导出容器(镜像化)

1️⃣ 导出容器

docker export 84acb55af1f9 > file.tar

2️⃣ 导入成镜像

cat file.tar | docker import - IMAGENAME:TAG

3️⃣ 基于运行中的容器创建镜像

docker commit CONTAINER REPOSITORY:TAG

调试环境 → 固化镜像 的常见手段


八、总结

Docker 运维不是记命令,
而是先想清楚一个问题:

我现在要管的是:

  • 镜像?

  • 容器?

  • 日志?

  • 网络?

  • 数据?

想清楚对象,
命令自然就选对了。



Comment