故事:小智的魔法蛋糕店
小智拥有一家魔法蛋糕店,他使用魔法食谱(Docker镜像)来制作美味的蛋糕(Docker容器)。
Docker镜像和容器的区别
-
Docker镜像(Magic Recipe)
- 故事中的对应:在小智的蛋糕店中,魔法食谱是一份详细的指南,包含了制作蛋糕所需的所有原料和步骤。每个食谱都是精确的,确保每次制作的蛋糕都是相同的口味和质量。
- 特点:不可变的、轻量级的、只读的。镜像是创建容器的模板,包含了运行应用程序所需的代码、运行时、系统工具、系统库等。
-
Docker容器(Delicious Cakes)
- 故事中的对应:根据魔法食谱,小智可以制作出一个个美味的蛋糕。每个蛋糕都是独立包装的,可以立即食用,也可以送给顾客。
- 特点:镜像的运行实例,是可变的、可写的。容器是隔离的、安全的,并且可以控制其对底层系统资源的使用。
Docker常用命令
小智在经营魔法蛋糕店时,会用到一些魔法咒语(Docker命令)来管理他的蛋糕(容器)和食谱(镜像)。
-
docker build
- 咒语:根据魔法食谱(Dockerfile)和小智的原料(代码和依赖),创建一个新的蛋糕(Docker镜像)。
- 故事中的对应:
docker build -t my-cake .
意味着小智要基于当前目录下的食谱(Dockerfile)构建一个名为“my-cake”的蛋糕(镜像)。
-
docker run
- 咒语:启动一个新的容器,根据魔法食谱(Docker镜像)制作蛋糕(运行应用程序)。
- 故事中的对应:
docker run -d -p 80:80 my-cake
意味着小智要运行一个名为“my-cake”的蛋糕(容器),并且将容器的80端口映射到宿主机的80端口。
-
docker images
- 咒语:列出小智所有的魔法食谱(Docker镜像)。
- 故事中的对应:
docker images
显示所有可用的Docker镜像。
-
docker ps
- 咒语:查看正在运行的蛋糕(Docker容器)。
- 故事中的对应:
docker ps
显示当前运行中的容器。
-
docker stop/ docker start
- 咒语:停止或启动一个蛋糕(Docker容器)。
- 故事中的对应:
docker stop my-cake
停止名为“my-cake”的容器;docker start my-cake
启动名为“my-cake”的容器。
-
docker rm
- 咒语:移除一个蛋糕(Docker容器)。
- 故事中的对应:
docker rm my-cake
删除名为“my-cake”的容器。
-
docker rmi
- 咒语:从小智的收藏中移除一个魔法食谱(Docker镜像)。
- 故事中的对应:
docker rmi my-cake
删除名为“my-cake”的镜像。
-
docker pull/ docker push
- 咒语:从Docker Hub仓库拉取(下载)或推送(上传)一个魔法食谱(Docker镜像)。
- 故事中的对应:
docker pull my-cake
从Docker Hub下载名为“my-cake”的镜像;docker push my-cake
将名为“my-cake”的镜像上传到Docker Hub。