わざわざ翻訳しないといけないくらい難しい英語ではありませんが、
以下のページを翻訳してみました。
docker-compose.yml リファレンス
https://docs.docker.com/compose/yml/
複数のサービスをまとめてアプリケーションを提供する使い方が基本に成るはずなので、Dcocker Compose (もしくは代替ツール?) を使わざるを得ないはず。
なのでDockerfileだけでなくdocker-compose.ymlもDocker活用には必修科目になるのだとおもいます。
以下、勝手翻訳文です。参照される方は at your own risk でお願いします。
参考迄:
Redmineコンテナを上げるためのdocker-compose.ymlを書いてみました。
docker-compose.ymlのサンプルになるかもしれないので
リンクをのこしておきます。
--------
docker-compose.yml リファレンス
docker-compose.yml に定義されたそれぞれのサービスは明確に1つのイメージもしくはビルドを指定しなくてはなりません。他のキーはオプションです、そしてそれらは「docker run」コマンドラインのオプションに類似しています。
「docker run」同様、Dockerfile 内に指定されたオプション(例:CMD、EXPOSE、VOLUME、ENV)はデフォルトで尊重されています-再度docker-compose.yml に指定する必要はありません。
image
タグもしくはイメージIDの一部。ローカルもしくはリモートに存在するもの-Composeはローカルに存在しない場合pullを実行しようとします。
image: ubuntu
image: orchardup/postgresql
image: a4bc65fd
build
Dockerfileのあるディレクトリへのパス。ディレクトリはDockerデーモンへ送信されるビルドコンテキストでもあります。
Composeはビルドし、生成した名前でタグ付けし、その後イメージを使用します。
build: /path/to/build/dir
command
デフォルトコマンドをオーバライドします。
command: bundle exec thin -p 3000
links
別のサービスコンテナへのリンク。サービス名とリンクエイリアス両方(SERVICE:ALIAS)か、サービス名だけ(エイリアスとしても使用される)を指定します。
links:
- db
- db:database
- redis
次のように、エイリアス名つきのエントリがこのサービスコンテナの /etc/hosts に作成されます:
172.17.2.186 db
172.17.2.186 database
172.17.2.187 redis
開発環境もまた作成されます-詳細は開発環境リファレンスを参照のこと。
external_links
このdocker-compose.yml の外もしくは Compose の外で開始されたコンテナへのリンク、特に共有もしくは共通のサービスを提供するコンテナへのリンク。external_links はコンテナ名とリンクエイリアス両方を指定した場合(CONTAINER:ALIAS)リンクに近い意味をもちます。
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql
ports
公開するポート。両方のポート(HOST:CONTAINER)かコンテナ側のポート(ホストポートはランダムに選択される)。
注意:
HOST:CONTAINER 形式でポートをマッピングする場合、
60番より下のポートを使う誤りを経験するかもしれません、
なぜならYMALは xx:yy 形式を60分数(時刻)の数字として解釈するためです。
このため、ポートマッピングを指定する際常に文字列として明確に指定する
ことを推奨します。
ports:
- "3000"
- "8000:8000"
- "49100:22"
- "127.0.0.1:8001:8001"
expose
ホストマシンへ公開しないポートの露出-リンクされたサービスへのみアクセスします。内部ポートだけを指定します。
expose:
- "3000"
- "8000"
volumes
ボリュームとしてのマウントするパス、オプションとしてホストマシン上のパスやアクセスモード(HOST:CONTAINER:ro)を指定します。
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
- ~/configs:/etc/configs/:ro
volumes_from
別のサービスやコンテナからすべてのボリュームをマウントします。
volumes_from:
- service_name
- container_name
environment
環境変数を追加します。配列もしくはディレクトリのどちらか使用可能です。
単一のキーの環境変数はCompose実行中のマシン上の値として解決されます、そしてそれは秘密裏にホスト特定値として有用です。
environment:
RACK_ENV: development
SESSION_SECRET:
environment:
- RACK_ENV=development
- SESSION_SECRET
env_file
ファイルから環境変数を追加します。単一値もしくはリストで記述します。
environmentで指定した環境変数はこれらの変数値でオーバライドします。
env_file:
- .env
RACK_ENV: development
net
ネットワーキングモード。「docker client --net」パラメータとして同じ値を使ってください。
net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"
dns
カスタムDNSサーバ。単一値もしくはリストで記述します。
dns: 8.8.8.8
dns:
- 8.8.8.8
- 9.9.9.9
cap_add, cap_drop
コンテナ性能(capabilitities) を追加・削除します。すべてのリストは「man 7 capabilities」を参照してください。
cap_add:
- ALL
cap_drop:
- NET_ADMIN
- SYS_ADMIN
dns_search
カスタムDNS検索ドメイン。単一値もしくはリストで記述可能です。
dns_search: example.com
dns_search:
- dc1.example.com
- dc2.example.com
working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares
各々単一値(「docker run」に類似)を指定します。
cpu_shares: 73
working_dir: /code
entrypoint: /code/entrypoint.sh
user: postgresql
hostname: foo
domainname: foo.com
mem_limit: 1000000000
privileged: true
restart: always
stdin_open: true
tty: true
Compose ドキュメンテーション
Composeのインストール
ユーザガイド
コマンドラインリファレンス
Compose 環境変数
Compose コマンドライン completion
0 件のコメント:
コメントを投稿