Docker ComposeとDockerfileの違いは何ですか?質問する

Docker ComposeとDockerfileの違いは何ですか?質問する

私は読んで学んできましたドッカー、使用する Django セットアップを正しく選択しようとしています。これまでのところ、次のいずれかがあります。

Docker の作成またはDockerファイル

Dockerfile はDocker Composeで使用されることは理解していますが、FROMさまざまなイメージに対して複数のコマンドを含む 1 つの大きな Dockerfile にすべてを入れるのが良い方法かどうかはわかりません。

次のようないくつかの異なる画像を使用したいと思います。

uwsgi
nginx
postgres
redis
rabbitmq
celery with cron

Dockerを使用してこのタイプの環境を設定する場合のベストプラクティスについてアドバイスをお願いします。

もし参考になれば、私はMacを使っているので、ブート2ドッカー

私が抱えていた問題のいくつかは次のとおりです:

  1. Docker ComposeはPython3と互換性がありません
  2. プロジェクトをコンテナ化したいので、1つの大きなDockerfileが理想的でない場合は、Docker Composeを使用して分割する必要があると思います。
  3. プロジェクトをPy2とPy3互換にすることは問題ないので、django-composeを使用するつもりです。

ベストアンサー1

Dockerファイル

ここに画像の説明を入力してください

Dockerfile は、ユーザーがイメージを組み立てるために呼び出すことができるコマンドを含む単純なテキスト ファイルです。

例: Dockerfile

FROM ubuntu:latest
MAINTAINER john doe 

RUN apt-get update
RUN apt-get install -y python python-pip wget
RUN pip install Flask

ADD hello.py /home/hello.py

WORKDIR /home

Docker の作成

ここに画像の説明を入力してください

Docker の作成

  • マルチコンテナ Docker アプリケーションを定義および実行するためのツールです。

  • アプリを構成するサービスを定義し、docker-compose.ymlそれらを分離された環境で一緒に実行できるようにします。

  • 1つのコマンドを実行するだけでアプリを実行できますdocker-compose up

例: docker-compose.yml

version: "3"
services:
  web:
    build: .
    ports:
    - '5000:5000'
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
    volumes:
      logvolume01: {}

おすすめ記事