2017-10-28 62 views
0

是否可以拖拽并启动在docker-compose.yml中定义的所有容器?我试图执行docker-compose up -d my/image,其中my/image是DockerHub上的回购,但它说“无法找到docker-compose.yml”。我也试着先拉使用docker pull my/image具有相同的结果如何为Docker Hub的图片“docker-compose up”

UPD图像:图像https://hub.docker.com/r/gplcart/core/,源 - https://github.com/gplcart/docker-core

解决:好像泊坞窗,撰写不起作用这种方式,我想。我需要手动创建一个目录,将docker-compose.yml放在那里,然后运行docker-compose up

https://docs.docker.com/compose/wordpress/#define-the-project

我预计运行docker-compose up -d repo/image足够的下载和运行的所有定义的容器

+2

你有一个'泊坞窗 - compose.yaml'(或'.yml')文件?没有一个“docker-compose”将无法工作。 – larsks

+0

当然,我可以为本地图像运行“docker-compose up” – ymakux

+0

请发布您的docker-compose.yml文件 –

回答

0

尝试登录到泊坞枢纽,使泊坞撰写知道你想从那里拉的图像。

在命令行...

docker login

将提示您输入用户名和密码。一旦通过身份验证,撰写应该在运行docker-compose up时从Docker Hub提取图片。

此外,您需要从docker-compose.yml文件所在的同一目录运行docker-compose up。看看Github上的docker-compose.yml文件,看起来你缺少几行。您需要指定版本,并且gplcart,dbphpmyadmin应该在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 
+0

我猜想“docker login”是推送的。无论如何,它没有工作 – ymakux

+0

看起来你也缺少'docker-compose.yml'文件中的行。更新了我的答案。 “ – grizzthedj

+0

”另外,您需要从docker-compose.yml文件所在的同一目录运行docker-compose“是的,但是如何获取目录如果我拉取远程图像?对于本地图像来说很容易。 “docker-compose up remote/image”的全部内容是自动解决所有问题。我错了吗? – ymakux

0

要拉的图像使用docker-compose pull <service_name>,其中service_name是你docker-compose.yml文件

docker pull my/image失败列出的服务之一,但比你指出应该失败,不同的错误(你贴一个撰写错误)

在您的示例中,my/name不是有效的服务名称,因为您无法在服务名称中使用/。撰写会给你一个不同的错误。

目前还不清楚my/name代表什么(假设你用本地代替它)。

如果您发布您的docker-compose.yml它将有助于确定正确的dockerdocker-compose命令应该是什么。

0

错误Can't find docker-compose.yml表示您目前不在docker-compose.yml文件的目录中,或者您已将该文件命名为不同的文件。如果您为文件指定了不同的内容(包括不同的大小写或扩展名),则可以重命名该文件,也可以运行docker-compose -f your_filename.yml up以传递docker-compose的其他文件进行解析。如果您不在目录中,请确保在运行docker-compose命令之前先进入该目录。

0

docker-compose根据您当地的docker-compose.yml文件采取行动。如果不是执行单独的docker命令(为了拉取图像或部署应用等)而使用docker-compose来提取第三方映像通常很有用,您希望以更结构化的方式定义您的架构,例如:

docker-compose.yml文件:

version: '3' 

services: 

    containerA: 
     image: gplcart/core 

    containerB: 
     build: . 
     # go on defining the rest ... 

,并与部署:

docker-compose build && docker-compose up -d

相关问题