English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

docker-composeの詳細な説明とサンプルコード

docker-composeの使用例

Dockerを使ってMySQLを構築する + java service + nginx、合計4個のdockerコンテナを定義する必要があります。docker runの方法で一つずつコンテナを作成するのは非常に面倒です。より効率的にコンテナをバッチで作成できるように、docker-composeツールを使用し、docker-compose.ymlファイルを使用すると、一組のコンテナの作成を迅速に行うことができます。

mysql:
 image: daocloud.io/yjmyzz/mysql-osx:latest
 volumes:
   - ./mysql/db:/var/lib/mysql
 ports:
   - 3306:3306
 environment:
   - MYSQL_ROOT_PASSWORD=123456
service1:
 image: java:latest
 volumes:
   - ./java:/opt/app
 expose:
   - 8080
 #ports:
 #  - 9081:8080
 links:
   - mysql:default
 command: java -jar /opt/app/spring-boot-rest-framework-1.0.0.jar
service2:
 image: java:latest
 volumes:
   - ./java:/opt/app
 expose:
   - 8080
 #ports:
 #  - 9082:8080
 links:
   - mysql:default
 command: java -jar /opt/app/spring-boot-rest-framework-1.0.0.jar
nginx1:
  image: nginx:latest
  volumes:
   - ./nginx/html:/usr/share/nginx/html:ro
   - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
   - ./nginx/conf.d:/etc/nginx/conf.d:ro
  #expose:
  #  - 80
  ports:
   - "80:80"
  links:
   - service1:service1
   - service2:service2

内容は複雑ではありませんが、詳細なキーワードの説明は本文の最後のリファレンス記事リンクを参照してください。

質問:このファイルはどこにありますか?

以下のディレクトリ構造を参照してください:

mysql-java-nginx
├── docker-compose.yml
├── java
│  └── spring-boot-rest-framework-1.0.0.jar
├── mysql
│  └── db
└── nginx
  ├── conf
  ├── conf.d
  │  └── default.conf
  ├── html
  │  └── index.html
  └── nginx.conf

コンテナの作成:

cd mysql-java-nginx
docker-compose up

これだけ簡単です。1度のupですべてのコンテナの作成が完了します。upは通常初めての作成に使用され、ターミナルのリアルタイム出力のログ内容を観察してコンテナが正常に起動しているかを判断できます。何か問題がなければ、直接Ctrl+Cを終了し、次に

docker-compose start

バックグラウンドでコンテナを起動します。  

他のコマンドには:

コマンド:
 サービスを構築または再構築します
 help        コマンドのヘルプを取得
 kill        コンテナを強制終了
 logs        コンテナからの出力を表示
 pause       サービスを一時停止
 port        ポートバインディングのパブリックポートを表示
 ps         コンテナの一覧表示
 pull        サービスイメージを引き取る
 restart      サービスを再起動
 rm         停止されたコンテナを削除
 run        一時的な実行-off command
 scale       サービスのコンテナ数を設定
 start       サービスを開始
 stop        サービスを停止
 unpause      サービスを再開
 up         コンテナを作成し開始
 migrate-to-labels ラベルを追加するためにコンテナを再作成
 version      Docker を表示-Compose バージョン情報

名前を見るだけで意味がわかります。  

参考記事:

https://docs.docker.com/compose/compose-file/

読んでいただきありがとうございます。皆様のサポートに感謝します!

Elasticsearchチュートリアル