上文中我们学习了dcoker-compose的基本安装与使用,以及docker-compose.yml文件的简单编写。这里我们继续来学习docker-compose镜像相关的知识。
一:使用dockerfile来构建镜像
首先,我们先放一下上文中我们编写的docker-compose.yml文件内容:
services:
web:
image: nginx:latest
ports:
- "8087:80"
my-wordpress:
image: wordpress:latest
ports:
- "8081:80"
这里有一个小小的问题,什么问题呢?
我想在docker-compose.yml中使用我编写好的Dockerfile文件该怎么使用呢?
很简单,直接指定Dockerfile文件的位置即可。
services:
my-nginx:
build: ./ # 指定Dockerfile文件位置
image: my-nginx:latest # 定义容器名称
ports: # 暴露端口
- "8089:80" # nginx暴露的80端口对应宿主机的8089
- "8443:443" # nginx暴露的443端口对应宿主机的8443
我这里再放一下Dockerfile文件内容:
# 使用官方的 Nginx 镜像作为基础镜像
FROM nginx:latest
# 复制自定义的 Nginx 配置文件到容器中
# COPY nginx.conf /etc/nginx/nginx.conf
# 暴露端口 80
EXPOSE 80
# 暴露端口 443
EXPOSE 443
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]
执行命令使用docker-compose.yml文件运行容器:
docker compose up -d
运行成功之后,我们查看现在正在运行的容器列表:
docker compose ps
这样,我们进入容器看看容器中的目录结构是什么样子的。
docker compose exec web /bin/bash
其实就是一个linux系统。
二:拉取镜像
在包含 docker-compose.yml 文件的目录中运行以下命令:
docker compose pull
这个命令就是拉取docker-compose.yml中image对应的镜像,加快我们使用docker-compose.yml开启容器的速度。
下面我们使用示例来简单说明一下:
services:
web:
image: nginx:latest
ports:
- "8087:80"
my-wordpress:
image: wordpress:latest
ports:
- "8081:80"
上方文件中,我们使用了两个镜像,分别是nginx和wordpress
使用
docker compose pull
就是将其二者全部拉取下来了。‘
那么,现在,我得想法是,只拉取nginx,不拉取wordpress,那么命令该这么写:
docker-compose pull web
只拉取web镜像
有的时候,我们镜像拉取会失败,docker还为我们提供了忽略拉取失败镜像的选项:
docker-compose pull --ignore-pull-failures
总结一下:
docker-compose pull 命令用于从 Docker 镜像仓库中拉取 docker-compose.yml 文件中定义的服务镜像。可以选择拉取所有服务的镜像或指定服务的镜像,并使用各种选项来控制拉取过程。这个命令在确保使用最新镜像版本时非常有用。
以上大概就是docker-compose构建与拉取镜像。
有好的建议,请在下方输入你的评论。