Dockerfile是否创build一个单一的图像或多个图像?
我的dock-compose.yml文件
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
当我运行docker-compose时,它会创build两个容器,一个使用rails应用程序,另一个使用数据库。 我了解,每个docker文件创build一个最终的docker图像(因此一个容器),但在这种情况下,我们最终创build两个不同的容器。 有人能解释一下吗,这是怎么发生的?
docker-compose
根据两个图像pipe理两个容器:
-
postgres
容器基于从Docker Hub下载的现有图像 :不需要Docker文件 。 如果您没有在本地,它将被下载,并保存在本地图像存储 。 -
web
基于你的Dockerfile(因为build: .
:。指令)