Docker 常用命令入门:从容器生命周期到日志与端口映射
【摘要】 Docker 是当下最流行的容器化平台之一,它把应用及其依赖打包成可移植的镜像,在任意兼容环境里以一致的方式运行。对刚接触 Docker 的开发者而言,掌握最常用的一批命令就能覆盖日常工作的绝大部分场景。本文按镜像、容器、日志与端口、资源与进程的顺序,整理一份面向初学者的 Docker 常用命令速查笔记。 一、镜像相关镜像是容器的只读模板,先有镜像才能跑容器。docker images:列出...
Docker 是当下最流行的容器化平台之一,它把应用及其依赖打包成可移植的镜像,在任意兼容环境里以一致的方式运行。对刚接触 Docker 的开发者而言,掌握最常用的一批命令就能覆盖日常工作的绝大部分场景。本文按镜像、容器、日志与端口、资源与进程的顺序,整理一份面向初学者的 Docker 常用命令速查笔记。
一、镜像相关
镜像是容器的只读模板,先有镜像才能跑容器。
- docker images:列出本地已有的镜像,输出包含 REPOSITORY、TAG、IMAGE ID、创建时间和大小。配合 -q 只显示镜像 ID。
- docker pull 镜像名加冒号标签:从仓库拉取镜像。省略标签时默认使用 latest。
- docker rmi 镜像:删除本地镜像。如果该镜像正被容器引用,需先删除对应容器或使用 -f 强制删除。
- docker build -t 名称加冒号标签 上下文路径:基于 Dockerfile 构建镜像,上下文路径通常是包含 Dockerfile 的目录。构建过程中可以使用 --no-cache 跳过缓存层,方便在修改依赖后重新构建。
- docker tag 旧标签 新标签:给已有镜像重新打标签,常用于将本地镜像标记为远程仓库可推送的路径。
二、容器生命周期
容器由镜像启动而来,日常操作围绕启动、进入、停止和清理展开。
- docker run 是最核心的命令,基于镜像创建并启动容器。常用参数包括:-d 以后台方式运行;–name 指定容器名称,方便后续用名字管理;-p 做端口映射,把宿主机的端口转发到容器内;-v 挂载数据卷,实现持久化或共享代码目录;-e 注入环境变量;–rm 容器退出后自动删除,适合临时调试。
- docker ps:查看正在运行的容器。加 -a 可以看到已退出的容器,加 -q 仅输出容器 ID。
- docker stop 容器:向容器发送 SIGTERM,让进程有机会优雅退出。如果进程在超时时间内未退出,Docker 会补发 SIGKILL。
- docker start、docker restart、docker pause、docker unpause:分别用于重新启动已停止的容器、重启容器、挂起和恢复容器内所有进程。restart 等价于 stop 后紧接着 start,但在日志上会多一条 restart 事件,方便排查。
- docker rm 容器:删除容器。容器必须先处于停止状态,或使用 -f 强制删除运行中的容器。
- docker exec -it 容器 sh:在运行中的容器里交互式启动一个 shell,这是排查问题和临时修改配置最常用的方式。如果容器内没有 sh,也可以换成 bash。
三、查看日志与端口映射
容器出了问题,第一件事通常是看日志。
- docker logs 容器:输出容器的标准输出和标准错误。-f 可以实时跟随,–tail 100 只看最近 100 行,–since 可按时间过滤,排查线上问题时非常实用。
- 端口映射在 docker run 的 -p 参数中配置,格式为宿主机端口加冒号容器端口。映射完成后,在宿主机访问 localhost 加对应宿主机端口,请求就会转发到容器内的服务。使用 docker port 容器 可以列出某个容器已建立的端口映射关系。
- 如果想让容器暴露的端口在宿主机上随机分配,可以使用大写的 -P,Docker 会自动挑选可用端口。
四、资源限制与查看容器信息
在生产或共享环境中,限制容器资源能避免单个容器把整台机器跑崩。
- docker stats:实时展示所有运行中容器的 CPU、内存、网络 I/O 和块设备 I/O 使用量,是观察资源占用的首选命令。
- docker top 容器:列出容器内正在运行的进程,类似宿主机的 top,但只包含该容器的命名空间。
- docker inspect 容器:以 JSON 形式返回容器的完整元数据,包括 IP 地址、挂载信息、网络配置、健康检查状态等。配合 -f 模板可以只提取字段。
- 运行时的资源限制通过 docker run 的 -m 或 --memory 限制内存上限、–cpus 限制 CPU 份额。
五、数据卷与持久化
容器本身是短暂的,退出或重建后文件就会丢失。把需要持久化的目录用 -v 挂载到宿主机或命名卷,就可以跨容器生命周期保留数据。
- 绑定挂载:-v 宿主机路径加冒号容器路径,直接把宿主机的路径映射进容器,适合开发时共享代码目录。
- 命名卷:先用 docker volume create 创建,再用 -v 卷名加冒号容器路径 挂载。命名卷由 Docker 管理存储位置,迁移和备份更方便。
- docker volume ls 和 docker volume inspect 卷名 分别用于列出和查看卷的详细信息。
六、清理与维护
长期使用 Docker 后,本地会堆积大量无用对象,定期清理能释放磁盘。
- docker system prune:删除已停止的容器、未使用的网络以及悬空镜像,加 -a 会同时清理所有未被任何容器引用的镜像,–volumes 进一步清理未被挂载的卷,执行前请确认。
- docker image prune:只清理悬空镜像,比 system prune 更保守。
结语
以上命令覆盖了拉取镜像、构建、启动、调试、日志、端口、资源与清理这些高频场景。实际工作中,建议把 docker run 的常用参数组合写成脚本,再结合 docker-compose 管理多容器应用,能显著减少重复输入和配置遗漏。对刚上手 Docker 的同学,先把这二十来条命令在本地试一遍,遇到不确定的参数用 docker 加命令名 加 --help 查阅,比死记硬背更高效。如果觉得有用,欢迎点赞与留言交流你平时最常用的 Docker 参数组合。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)