Docker 新手必懂的 5 个概念:镜像、容器、仓库、卷与网络

举报
yd_211758112 发表于 2026/10/22 17:50:45 2026/10/22
【摘要】 很多人第一次接触 Docker,会被一堆名词绕晕。其实只要弄清楚五个核心概念,日常使用就够了。 一、镜像(Image)镜像是一个只读的模板,里面打包了应用运行所需的操作系统文件、依赖库和程序本身。可以把它理解成“安装包”。镜像是分层构建的,每一条 Dockerfile 指令都会生成一层,相同的层可以在多个镜像之间复用,所以拉取和存储都很省空间。常用命令:docker pull nginx:l...

很多人第一次接触 Docker,会被一堆名词绕晕。其实只要弄清楚五个核心概念,日常使用就够了。

一、镜像(Image)

镜像是一个只读的模板,里面打包了应用运行所需的操作系统文件、依赖库和程序本身。可以把它理解成“安装包”。镜像是分层构建的,每一条 Dockerfile 指令都会生成一层,相同的层可以在多个镜像之间复用,所以拉取和存储都很省空间。常用命令:docker pull nginx:latest、docker images。

二、容器(Container)

容器是镜像运行起来之后的实例。同一个镜像可以启动多个互相隔离的容器。容器在镜像之上加了一层可写层,运行时产生的改动都写在这里,容器删除后改动也随之消失。常用命令:docker run -d --name web -p 8080:80 nginx、docker ps、docker stop web。

三、仓库(Registry)

仓库是存放和分发镜像的地方,最常见的是 Docker Hub,企业里也会使用华为云 SWR 这类私有镜像仓库。推送镜像前需要先打标签:docker tag myapp:1.0 <仓库地址>/<组织>/myapp:1.0,再 docker push。

四、数据卷(Volume)

因为容器的可写层会随容器删除而丢失,数据库、上传文件这类需要长期保存的数据应该放在数据卷里。docker volume create mydata 创建卷,启动时用 -v mydata:/var/lib/mysql 挂载。也可以把宿主机目录直接挂进去,例如 -v /home/data:/data,方便开发调试。

五、网络(Network)

默认情况下容器连在 bridge 网络上,通过 -p 把容器端口映射到宿主机。多个容器需要互相访问时,建议自建网络:docker network create appnet,然后启动容器时加 --network appnet,容器之间就能直接用容器名互相访问,比写死 IP 可靠得多。

把五个概念串起来:从仓库拉取镜像,用镜像启动容器,用卷保存数据,用网络让容器协作。掌握这条主线,再去学 Dockerfile 和 Docker Compose 会轻松很多。下一篇我会用 Compose 把一个 Web 应用和 MySQL 编排在一起,欢迎交流。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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