Docker 入门:用三句话理解镜像、容器和仓库
Docker 入门:用三句话理解镜像、容器和仓库
刚接触 Docker 的人最容易被三个词绕晕:镜像(Image)、容器(Container)、仓库(Registry)。其实用一个类比就全通了——把镜像想成"系统安装盘",容器想成"装好系统的电脑",仓库想成"软件商店"。
镜像:只读的模板
镜像是一个只读的文件模板,里面打包了运行某个软件所需的一切:操作系统层、依赖库、配置文件、代码。比如 nginx:latest 这个镜像,拉下来就自带了 Nginx 和它要的运行环境,你不用再操心 apt install 装了什么版本。
镜像是分层存储的。每一层对应 Dockerfile 里的一条指令,层与层之间共享复用——这就是为什么拉 python:3.12 和 python:3.11 时,很多层显示 “Already exists”,省了大量下载时间。
容器:镜像跑起来的实例
docker run nginx 这条命令,就是拿 nginx 这张"安装盘"启动了一台"电脑"。容器是镜像的运行实例,相互隔离:A 容器里把 Nginx 玩坏了,B 容器毫无感觉。
关键特性:容器是临时的。docker rm 删掉容器,里面写的数据就没了(除非挂了 volume)。所以数据库这类有状态服务,一定要用 -v 把数据目录挂到宿主机或命名卷上,这是新手最常见的翻车点。
仓库:镜像的"应用商店"
docker pull 默认从 Docker Hub 拉镜像,国内建议配个镜像加速器。华为云、阿里云都提供免费的容器镜像服务(SWR),docker login 登录后 docker push 就能传自己的镜像,CI/CD 流水线就靠它流转。
三个马上能用的命令
docker run -d -p 8080:80 --name web nginx # 启动一个 Nginx,宿主机 8080 端口访问
docker ps # 看正在跑的容器
docker logs -f web # 跟踪容器日志,排错神器
记住这三层关系,后面学 Dockerfile、docker-compose 都是水到渠成。明天聊聊 Dockerfile 里 COPY 和 ADD 的区别——90% 的人第一次都写错。
- 点赞
- 收藏
- 关注作者
评论(0)