2016-01-30 2 views
2

У меня есть файл docker-compose.yml, который определяет службы и его образ.docker-compose пытается вытащить уже существующие изображения

service: 
    image: my_image 

сейчас, что я бегу docker-compose up я получаю следующее сообщение:

$ docker-compose up  
Pulling service (my_image:latest)... 
Pulling repository docker.io/library/my_image 
ERROR: Error: image library/my_image:latest not found 

Это правильно, что my_image в данном случае не на Docker ступице. Но я создал его с docker build -t my_image . (в другом файле) до и он указан в docker images.

Есть ли что-нибудь, что я пропустил, чтобы рассказать докер-сочиню, чтобы не искать изображение в реестре/концентраторе docker.io?

[править] Доккер-клиент и серверная версия 1.9.1, версия для докеров составляет 1.5.2.

Я запускаю докер-компоновку (а также докер) через HTTP-API на удаленной машине, не знаю, имеет ли это значение.

+1

Я просто попробовал это, и он работает. Я использовал разные папки для 'Dockerfile' и для' docker-compose.yml'. Вы уверены в имени изображения? Какую версию докера вы используете? Я использую 1.9, и он работает. Если вы используете предыдущую версию, возможно, вам нужно включить версию – alkis

+0

, если вы попытаетесь запустить изображение, которого не существует, он попытается вытащить его. Я думаю, у вас, вероятно, есть опечатка где-то, что заставляет его попробовать и потянуть другое изображение. – dnephin

+0

Я проверил правописание и даже попробовал его с добавлением тега 'my_image: latest' и без него, это не имело никакого значения. –

ответ

1

Если у вас есть изображения локальные или в любом месте, кроме концентратора докеров, вам нужно использовать build и путь или URL-адрес файла Dockerfile. Таким образом, в основном, когда мы работаем с Dockerhub, мы меняем образ на путь!

ubuntu: 
    container_name: ubuntu 
    build: /compose/build/ubuntu 
    links: 
    - db:mysql 
    ports: 
    - 80:80 

В этом примере я использую свой собственный файл Ubuntu Docker, который является местом в пути сборки. Файл должен быть назван Dockerfile как обычный, и вы просто указываете путь к папке, где он есть.

+2

Создание изображений происходит в другом месте. Я запускаю команду docker-compose через remote-api и надеялся просто «повторно использовать» изображения, уже созданные на хосте. Разве это не способ достичь этого, чем запустить команду 'docker run' вручную? –

Смежные вопросы