如何为Docker Hub的图片“docker-compose up”
是否有可能拉和启动在docker-compose.yml中定义的所有容器? 我正在尝试执行docker-compose up -d my/image
,其中my/image
是DockerHub上的回购站,但是它显示“找不到docker-compose.yml”。 我也试着用docker pull my/image
来得到相同的结果
UPD:图片https://hub.docker.com/r/gplcart/core/ ,源 – https://github.com/gplcart/docker-core
解决:看起来docker撰写不符合我想要的方式。 我需要手动创build一个目录,将docker-compose.yml放到那里,然后运行docker docker-compose up
。
https://docs.docker.com/compose/wordpress/#define-the-project
我预计运行docker-compose up -d repo/image
足以下载并运行所有定义的容器
要使用docker-compose pull <service_name>
,请docker-compose.yml
文件中列出的其中一个service_name
docker pull my/image
失败,但应该失败,并有一个不同的错误比你注意到(你张贴撰写错误)
在您的示例中, my/name
不是有效的服务名称,因为您不能在服务名称中使用/
。 撰写会给你一个不同的错误。
我不清楚my/name
代表什么(假设你用本地的东西代替了它)。
如果你发布你docker-compose.yml
,它将有助于确定正确docker-compose.yml
docker-compose
命令应该是什么。
错误Can't find docker-compose.yml
表明你目前不在docker-compose.yml文件的目录中,或者你已经命名了不同的文件。 如果你已经命名了不同的文件,包括不同的大小写或扩展名,你可以重命名文件,或者运行docker-compose -f your_filename.yml up
来传递docker-compose
的不同文件进行parsing。 如果您不在目录中,请确保在运行docker-compose
命令之前先cd到该目录中。
docker-compose
基于你的本地docker-compose.yml
文件。 使用docker-compose
来拉取第三方图像通常是非常有用的,而不是执行单独的docker
命令(为了拉取图像或部署应用程序等等),您需要以更结构化的方式来定义您的架构,如:
我docker-compose.yml
文件:
version: '3' services: containerA: image: gplcart/core containerB: build: . # go on defining the rest ...
并部署:
docker-compose build && docker-compose up -d
尝试login到Docker Hub,以便Docker Compose知道您要从那里拉取图像。
从命令行…
docker login
系统将提示您input用户名和密码。 一旦通过身份validation,在运行docker-compose up
时,撰写应该从Docker Hub提取图片。
另外,您需要从docker-compose.yml
文件所在的目录运行docker-compose.yml
。 在Github上查看你docker-compose.yml
文件,看起来你缺less几行。 你需要指定版本,并且gplcart
, db
和phpmyadmin
应该在services
之下。
version: '3' services: gplcart: build: . links: - db ports: - 8080:80 db: image: mariadb:10.2 environment: MYSQL_DATABASE: test MYSQL_ROOT_PASSWORD: test ports: - 3306:3306 phpmyadmin: image: phpmyadmin/phpmyadmin:4.7 links: - db ports: - 8181:80