docker(十三)docker-compose(二)docker-compose构建与拉取镜像

216 阅读2分钟

上文中我们学习了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

1.jpg

 

这样,我们进入容器看看容器中的目录结构是什么样子的。

docker compose exec web /bin/bash

2.jpg

其实就是一个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构建与拉取镜像。

 

有好的建议,请在下方输入你的评论。