Docker 入门:先分清镜像、容器与数据卷,再跑第一个服务

举报
yd_261326831 发表于 2026/11/02 06:11:44 2026/11/02
【摘要】 很多初学者第一次接触 Docker,都会先被一堆名词绕晕:镜像、容器、仓库、数据卷、网络、编排。其实入门阶段不需要一次全部掌握,只要先抓住镜像、容器和数据卷这三个核心概念,再用一个能跑起来的小例子把它们串起来,后面再学 Dockerfile 和容器编排就不会觉得抽象了。先说镜像。镜像可以理解为一只读的模板,里面装好了运行某个程序需要的文件、依赖和启动方式。比如一个 Web 服务的镜像,通常已...

很多初学者第一次接触 Docker,都会先被一堆名词绕晕:镜像、容器、仓库、数据卷、网络、编排。其实入门阶段不需要一次全部掌握,只要先抓住镜像、容器和数据卷这三个核心概念,再用一个能跑起来的小例子把它们串起来,后面再学 Dockerfile 和容器编排就不会觉得抽象了。


先说镜像。镜像可以理解为一只读的模板,里面装好了运行某个程序需要的文件、依赖和启动方式。比如一个 Web 服务的镜像,通常已经包含了操作系统基础层、运行环境和应用代码。你可以把镜像想象成做菜用的预制菜包:配料和做法都固定好了,打开就能用,但你不能直接修改这个菜包本身,只能用它做出一份菜。


容器就是用镜像做出来的那一份菜,也就是真正运行起来的实例。同一个镜像可以启动多个容器,它们彼此隔离,互不干扰。容器启动很快,停止后也不会影响镜像本身。很多新手容易把两者混淆,记住一句话就够了:镜像是模板,容器是运行态;删容器一般不会删镜像,重新用镜像启动又能得到一个干净的环境。


数据卷解决的是数据保存问题。容器本身的文件系统默认是临时的,容器删了,写在里面的数据也容易跟着丢。如果你要长期保存数据库文件、上传文件或配置文件,就应该把容器里的目录挂载到宿主机目录或命名数据卷上。这样即使容器重建,数据仍然在。入门时先养成一个习惯:凡是重要数据,都不要只放在容器内部。


下面用一个最简单的例子把三者串起来。先拉取一个官方的 Nginx 镜像,然后用一条命令启动容器,并把宿主机的一个目录挂载为网站根目录,同时把容器的 80 端口映射到宿主机的 8080 端口。打开浏览器访问本地 8080 端口能看到欢迎页,就说明镜像、容器、端口映射和数据卷都已经打通了。接下来改一下挂载目录里的网页文件,刷新浏览器就能看到变化,而不需要重新构建镜像。


动手时还要注意几个常见坑。第一,端口冲突:如果 8080 已被占用,换一个空闲端口再映射即可。第二,数据卷路径写错:宿主机目录要使用绝对路径,相对路径容易指向意想不到的位置。第三,容器停止后用删除命令清理:长期堆积已停止的容器和无用镜像,会占用不少磁盘空间,定期清理是个好习惯。第四,不要在容器里直接改代码再当成正式环境:临时调试可以,真正要交付的还是应该写成 Dockerfile,重新构建镜像。


当你能熟练地拉取镜像、启动容器、查看日志、进入容器排错、挂载数据卷和清理资源,就可以说已经入门了。下一步可以学着写一个简单的 Dockerfile,把自己的小项目打包成镜像;再往后,可以了解多容器如何用编排工具一起启动,例如一个 Web 服务加一个数据库。学习路径不用贪多,每一步都配一个能跑通的小实验,Docker 就会从名词变成顺手的工具。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。