docker pull来获取postgres依赖镜像?
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镜像也作为我的镜像的依赖项被下载?
问题的原因是无法通过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文件。