Docker-Composeとは?
Docker-Composeとは?
複数のコンテナからなるサービスを自動的に構築して実行することで管理を簡素化し、複数のコンテナ設定内容を1つのyamlファイルに集約して使用できます.composeファイルを準備してコマンドを1回実行するだけで、そのファイルから設定を取得し、すべてのコンテナサービスを実行できます.
Docker-合成デフォルトコマンド
実行:
docker-compose up
中指:docker-compose stop
実行しながら構築(サービス開始前にイメージを再作成):docker-compose up --build
Docker-合成の使用方法
docker-compose up
クマンはdocker-composeを実行する.ymlとして定義されたコンテナを起動します.Docker-compose.ymlファイル
version: '3.5'
services:
mockserver:
build: mockserver
# mockerserver 폴더 안에 사용할 Dockerfile이 있음
ports: ['8001:8000']
# 호스트 OS 8001 <= mockserver 컨테이너 포트 8000
volumes:
- './mockserver/public:/home/public'
- './mockserver/server.py:/home/server.py'
web:
build:
context: .
dockerfile: web/Dockerfile
# web 폴더 안에 사용할 Dockerfile이 있음
cache_from:
- eu.gcr.io/tmrow-152415/electricitymap_web:production
- eu.gcr.io/tmrow-152415/electricitymap_web:staging
- eu.gcr.io/tmrow-152415/electricitymap_web:latest
image: eu.gcr.io/tmrow-152415/electricitymap_web:latest
# 베이스 이미지
command: npm run server-dev
# 이 서비스가 올라올 때 dockerfile의 CMD를 무시하고 npm run server-dev가 실행됨
depends_on: ['mockserver']
# web이 올라오기 전에 mockserver가 먼저 올라와야 함
environment:
- NODE_ENV=development
ports: ['8000:8000']
# 호스트 OS 8000 <= web 컨테이너 포트 8000
volumes:
- './config:/home/config'
- build
Dockerfileがサービスイメージを生成するパスを保存します.
- ports
ホストOSとコンテナのポートをバインドします.
引用符とともに文字列として指定する必要があります.
フォーマットは「host:container」または「container」
露出するポートマッピングの部分を示します.
バインドするホストの外部ポートとコンテナの内部ポートを指定します.
- image
docker-composeで基礎画像を指定します.
- command
このサービスをアップロードするときにDockerfileのCMD文を無視して実行するコマンドを設定します.
- depends_on
サービス間の依存関係順にサービスを開始します.
A: depends_on: -B
Aが適用される前に、Bが先に来るべきです.- environment
コンテナの環境変数を指定します.
Dockerfileファイル
FROM python:3.8-alpine
WORKDIR /home
EXPOSE 8000
ADD server.py server.py
CMD cd public && python ../server.py
- EXPOSE
ホストOSにはポートを公開せず、コンテナにのみポートを公開する.
- ADD
画像にファイルを追加します.
- CMD
コンテナの起動時にスクリプトまたはコマンドを実行します.
Reference
この問題について(Docker-Composeとは?), 我々は、より多くの情報をここで見つけました https://velog.io/@kjyeon1101/Docker-compose란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol