linux上 docker 容器操作核心三步:拉镜像(如 docker pull alpine:3.20)、run 启动(-it–rm 交互式或 - d 后台)、ps/stop/start/rm 管理状态,注意版本明确、-it 与 -d区别 及 stop 不删除容器。

在 Linux 上用 Docker 创建、启动和停止容器,核心就三步:拉镜像、跑容器、管状态。关键不是记命令,而是理解每个操作背后的目的和常见坑点。
拉取基础镜像(别跳过这步)
容器必须基于镜像运行,官方镜像最稳。比如想跑一个轻量级 Linux 环境,直接拉 alpine:
docker pull alpine:latest
不指定标签时默认是 latest,但生产环境建议写明确版本号(如 alpine:3.20),避免因镜像更新导致行为变化。执行后可用 docker images 查看本地已有镜像。
创建并立即启动容器(常用组合命令)
大多数场景下,你不需要先 create 再 start,一条 run 就搞定:
- -it:交互式终端(带 stdin + tty),适合调试
- –rm:退出后自动删除容器,避免残留(测试时推荐)
- –name mytest:手动指定容器名,比自动生成的随机名好记
- alpine:latest sh:运行 sh 进入 shell
完整示例:
docker run -it --rm --name mytest alpine:latest sh
进去后敲 exit,容器立刻退出并被清理。
后台运行 + 后续管理(生产常用模式)
如果不想卡在终端里,去掉 -it,加 -d 后台运行:
docker run -d --name nginx-test -p 8080:80 nginx:alpine
这时容器在后台跑着,你可以用这些命令管理:
- docker ps:查看正在运行的容器(加 -a 显示全部,含已停止的)
- docker logs nginx-test:查日志(加 -f 实时跟踪)
- docker stop nginx-test:优雅停止(发 SIGTERM,等 10 秒后强制 kill)
- docker start nginx-test:重新启动已停止的容器(状态保留)
- docker rm nginx-test:删除已停止的容器(加 -f 强制删运行中容器)
容器停了但没删?检查依赖再动手
执行 docker stop 后容器状态是 Exited,不是消失。此时还能 start 或 rm。但要注意:
- 如果容器挂载了卷(-v),rm 不会删卷数据,安全
- 如果用了 –network host 或 –privileged,重启前确认权限是否仍需
- 用 docker inspect nginx-test 可看 IP、端口 映射、启动命令等细节
基本上就这些。不复杂,但容易忽略镜像版本、后台运行标志、以及 stop 和 rm 的 区别。