Translate

2015年3月17日火曜日

docker-compose.yml リファレンス を翻訳してみた


わざわざ翻訳しないといけないくらい難しい英語ではありませんが、
以下のページを翻訳してみました。

 docker-compose.yml リファレンス
 https://docs.docker.com/compose/yml/


複数のサービスをまとめてアプリケーションを提供する使い方が基本に成るはずなので、Dcocker Compose (もしくは代替ツール?) を使わざるを得ないはず。
なのでDockerfileだけでなくdocker-compose.ymlDocker活用には必修科目になるのだとおもいます。

以下、勝手翻訳文です。参照される方は 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 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...