docker pull来获取postgres依赖镜像?

6 浏览
0 Comments

docker pull来获取postgres依赖镜像?

刚接触Docker

背景:我编写了一个docker-compose.yml文件,当使用docker-compose up命令运行时,它可以在我的电脑上成功构建和运行。注意:我的docker-compose.yml文件下载了Postgres镜像。

版本:'3'

服务:

api:

镜像:conference_api

容器名称:conference_api

构建:

上下文:。

端口:

- 5000:80

环境:

ASPNETCORE_ENVIRONMENT:生产环境

依赖:

- postgres

postgres:

镜像:postgres:9.6.3

容器名称:conference_db

环境:

POSTGRES_DB:conference

POSTGRES_USER:conf_app

POSTGRES_PASSWORD:docker

端口:

- 5432:5432

卷:

- ./db:/docker-entrypoint-initdb.d

然后,我将我的Docker镜像发布到Docker Hub。

在一个全新的机器上,我使用docker pull命令拉取我的镜像,然后运行它。

但是,我收到了错误信息,基本上是“找不到数据库”。Postgres镜像也没有被下载。

我的问题是:当我拉取我的镜像时,如何让Postgres镜像也作为我的镜像的依赖项被下载?

0
0 Comments

问题的原因是无法通过docker pull命令获取到postgres依赖的镜像。解决方法是使用docker-compose pull命令,并添加--include-deps参数来获取所有声明为依赖的服务镜像。另外一种解决方法是使用docker in docker,将docker-compose.yml文件放在镜像中执行,但是这种方法被开发者认为是不被鼓励的。需要注意的是,为了完成你想要实现的目标,你需要向用户提供docker-compose.yml文件。

总结起来,解决这个问题的方法有两种:一种是使用docker-compose pull命令,并添加--include-deps参数;另一种是使用docker in docker,将docker-compose.yml文件放在镜像中执行。但是第二种方法并不被鼓励。最后需要注意的是,为了完成目标,你需要向用户提供docker-compose.yml文件。

0