2015-10-04 2 views
1

Мой док-compose.yml файлСоздает ли Dockerfile одно изображение или несколько изображений?

db: 
    image: postgres 
    ports: 
    - "5432" 
web: 
    build: . 
    command: bundle exec rails s -p 3000 -b '0.0.0.0' 
    volumes: 
    - .:/myapp 
    ports: 
    - "3030:3030" 
    links: 
    - db 

мой Dockerfile

FROM ruby:2.1.4 
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs 
RUN mkdir /myapp 
WORKDIR /myapp 
ADD Gemfile /myapp/Gemfile 
RUN bundle install 
ADD . /myapp 
# RUN bundle exec rake db:create 
# RUN bundle exec rake db:migrate 
# RUN bundle exec rake db:seed 

когда я бегу докер-компоновать вверх, он создает два контейнера, один с рельсов приложения и одна с базой данных. Я понимал, что каждый файл докеров создает одно окончательное изображение докеры (и, следовательно, один контейнер), но в этом случае мы создаем два разных контейнера. Может кто-нибудь объяснить это мне, как это происходит?

ответ

2

docker-compose управляет двумя контейнерами, основанные на двух изображениях:

  • postgres Контейнер основан на existing image downloaded from Docker Hub: нет Dockerfile, необходимые для того. Если у вас его нет, он будет загружен и сохранен in your local image storage.
  • web один основан на вашем Dockerfile (из-за build: . директивы)
Смежные вопросы