ソースコード をちゃんと管理 バージョン管理システム gitlab を 導入 commit03

ソースコード をしっかり管理するために バージョン管理システム の gitlab を 導入 します。 commit03 では docker-composeの話題です。

前回に続いてdocker-compose関連の話題です。今回は私がよく使用する項目をまとめました。

ソースコード をちゃんと管理 バージョン管理システム gitlab を 導入 commit02

serviceの内容について説明します。

よく使用する項目一覧

serviceの定義でよく使用する項目をまとめました。

各項目に対してさらに設定項目があるのですが概要程度にとどめておきます。

項目 内容 サイト
image serviceで使用するイメージを指定。指定書式はdocker pullに準じる Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント
volumes ホスト(コンテナを管理する端末)の指定したディレクトリとコンテナ内ディレクトリを紐づける。この設定をすると、コンテナ内で作成されたファイルやディレクトリを労せずホスト側からアクセスできる。またバックアップも容易になる。 Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント
networks docker-composeファイル内のservicesと同階層(トップレベル)に定義されているnetworksの項目を参照し、ネットワークに参加。 Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント
logging ログの設定。

デフォルトではログを無尽蔵に生成するらしいので、最大ファイルサイズ・最大ファイル数を決めて設定するほうがよい。

Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント
restart dockerが再起動した際、自動的にスタートさせるかどうか。

例えばOS起動時にDockerを自動起動する設定にしていたとします。
この項目を設定していない場合はserviceは起動しません。
この項目でalways等に設定しておけば勝手に起動してくれます。

Docker run リファレンス — Docker-docs-ja 20.10 ドキュメント
ports 感覚的にはポートフォワード。コンテナのポートとホストのポートを紐づけます。
ホストのポートにアクセスすればコンテナで提供しているサービスを受けれられるということです。
Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント
expose portsに似ていますがホストとのポートと紐づけは行われません。他のserviceが利用するための「穴あけ」です。 Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント
enviroment コンテナの環境変数を設定できます。ここで指定したアイテムはコンテナ内では環境変数として使用できます。 Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント
mem_limit serviceはホストのメモリを共有しています。コンテナの負荷が高くなるとそのメモリを無尽蔵に使用してしまいます。この設定をすると、指定した値以上に使用しなくなります。 docker-compose におけるメモリ使用量の制限方法 – reboooot․net
links service同士の依存関係を定義。例えばAというserivceにこの項目を使用してコンテナBというserviceをlinksに設定すると、Aのコンテナ内でBのサービス名で使用できるようになります。当たり前のように思うかもしれませんがとても重要なことです。

これと同等の項目として、depends_onがあります。

depends_onとlinksはversionの"1″では異なる動作をしていましたがversionの"2″以降、機能は同じとのことです。

Compose ファイル・リファレンス — Docker-docs-ja 19.03 ドキュメント

今日はここまで!