docker-compose.yml ファイル内の一般的なテンプレート コマンドの詳細な説明

docker-compose.yml ファイル内の一般的なテンプレート コマンドの詳細な説明

注意: docker-compose.yml ファイルを書き込むときは、すべてのコロン (:) とダッシュ (-) の後にスペースを入れる必要があります。

1. コマンド

コンテナの起動後に実行されるデフォルトのコマンドを上書きする

コマンド: echo "hello"

2. コンテナ名

コンテナ名を指定します。デフォルトでは、プロジェクト名_サービス名_シリアル番号の形式が使用されます。

コンテナ名: docker-web-container

3. 構成

スウォームモードでのみ使用

4. 展開する

スウォームモードでのみ使用

5. デバイス

デバイスマッピングを指定する

デバイス:
- "/dev/dir:/dev/dir"

6. 依存する

コンテナの依存関係、起動順序、コンテナ間の通信の問題を解決します。

7. リンク

他のコンテナに接続します。注: このディレクティブは、depends_on に置き換えられて非推奨になりました。

ネットワークを作成するには docker network を使用し、特定のネットワークに接続するには docker run --network を使用する必要があります。

または、docker-compose.yml のバージョン '2' 以上を使用して、カスタム ネットワークを直接定義し、それを使用します。

8. DNS

カスタム DNS サーバー。単一の値またはリストを指定できます。

ドメイン名: 8.8.8.8
ドメイン名:
- 8.8.8.8
- 114.114.114.114

9. 環境

環境変数を設定します。配列形式または辞書形式のいずれかを使用できます。指定された名前の変数は、Compose を実行しているホスト上の対応する変数の値を自動的に取得します。これにより、不要なデータ漏洩を防ぐことができます。

環境:
MYSQL_ROOT_パスワード: 666666

10. 暴露する

ポートは公開されていますが、ホスト マシンにマップされておらず、接続されたサービスにのみアクセスできます。パラメータとして指定できるのは内部ポートのみです。

11. 追加ホスト

Docker の --add-host パラメータと同様に、追加のホスト名マッピング情報を指定します。開始されたサービス コンテナーの /etc/hosts ファイルにエントリが追加されます。例: 8.8.8.8 googledns

12. 健康チェック

コマンドでコンテナが正常に動作しているかどうかを確認する

ヘルスチェック:
テスト: ["CMD", "curl", "-f", "http://localhost"]
間隔: 1分30秒
タイムアウト: 10秒
再試行: 3

13. 画像

イメージ名またはイメージ ID を指定します。イメージがローカルに存在しない場合、Compose はイメージをプルしようとします。

14. ラベル

コンテナに Docker メタデータ情報を追加します。たとえば、コンテナーに補助情報を追加できます。

15. ネットワークモード

ネットワークモードを設定します。 docker run の --network パラメータと同じ値を使用します。

ネットワークモード: "ブリッジ"
ネットワークモード: "ホスト"
ネットワークモード: "なし"

16. ネットワーク

コンテナが接続されているネットワークを構成する

ネットワーク:
ネットワークデモ

17. ポート

HOST:CONTAINER の形式を使用してポート情報を公開するか、コンテナのポートを指定します (ホストはランダムなポートを選択します)。

ポート:
- 「80:80」
- 「443:443」
- 「8081:8081」

18. 巻数

データボリュームがマウントされるパスはホストパスに設定でき、相対パスもサポートされています。

ボリューム:
- ../サイト:/data/www:rw
- ./nginx/conf.d:/etc/nginx/conf.d:ro
- ./nginx/cert:/etc/nginx/cert:ro
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/phpcgi.conf:/etc/nginx/phpcgi.conf:ro
- ./nginx/fastcgi.conf:/etc/nginx/fastcgi.conf:ro
- ./nginx/pathinfo.conf:/etc/nginx/pathinfo.conf:ro
- ../logs/nginx:/var/log/nginx

19. ulimits

コンテナの ulimits 制限値を指定します。

たとえば、プロセスの最大数を 65535 に指定し、ファイル ハンドルの数を 20000 (ソフト リミット、アプリケーションはいつでも変更でき、ハード リミットを超えることはできません) および 40000 (システム ハード リミット、ルート ユーザーのみが増やすことができます) に指定します。

ulimits:
プロセス: 65535
ファイルなし:
ソフト: 20000
ハード: 40000

20. エントリポイント

サービスコンテナの起動後に実行されるエントリファイルを指定します

エントリポイント: /code/entrypoint.sh

21. ユーザー

コンテナ内でアプリケーションを実行するためのユーザー名を指定します

22. 作業ディレクトリ

コンテナ内の作業ディレクトリを指定する

作業ディレクトリ: /data/www

23.ドメイン名

指定されたコンテナ内のドメイン名を検索

ドメイン名: your_domain.com

24. ホスト名

コンテナ内のホスト名を指定する

25. MACアドレス

コンテナ内のMACアドレスを指定する

MACアドレス: 01-02-22-0A-0B

26. 特権を持つ

コンテナ内でいくつかの特権コマンドの実行を許可する

特権: true

27. 再起動

コンテナ終了後の再起動ポリシーが常に再起動されることを指定します。実稼働環境では、alwaysまたはunless-stoppedに設定することをお勧めします。

再起動: 常に

28. 読み取り専用

コンテナのルートファイルシステムを読み取り専用モードでマウントします。つまり、コンテナの内容を変更することはできません。

読み取り専用: 真

29. stdin_open

外部入力を受け入れるために標準入力を開く

stdin_open: 真

30.tty

擬似端末をシミュレートする

端末: 真

docker-compose.yml ファイルによく使用されるテンプレート コマンドに関するこの記事はこれで終わりです。docker-compose.yml テンプレート コマンドに関するより関連性の高い内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker-compose インストール yml ファイルの設定方法

<<:  CSS の画像パスの問題に関する議論 (同じパッケージ/異なるパッケージ)

>>:  CSS のフィルター属性とバックドロップフィルターの適用と違いの詳細な説明

推薦する

MySQLデータファイルの保存場所を表示する方法

次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...

Linuxでシンボリックリンクを削除(削除)するコマンド

Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...

Google の新しい UI から学べること (画像とテキスト)

2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...

XHTML チュートリアル: Transitional と Strict の違い

実際、XHTML 1.0 は、Transitional DOCTYPE と Strict DOCTY...

Linux システムで Tomcat を自動的に起動するための設定方法の紹介

1. /etc/init.d ディレクトリに入ります: cd /etc/init.d 2. tomc...

1つのSQL文でMySQLの重複排除が完了し、1つが保持されます。

数日前、ある要件に取り組んでいたとき、MySQL で重複レコードをクリーンアップする必要がありました...

Alibaba Cloud で静的ウェブサイトを素早く構築する方法

序文:ジュニアプログラマーとして、私は自分自身の個人ウェブサイトを構築し、それを他の人に見せることを...

jQueryは画像追従効果を実現します

この記事では、画像フォロー効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

HTML における DOM 要素のスクロールバースクロール制御の詳細な説明

dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...

Ubuntu 18.04 は pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib をインストールします

1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...

K3s 入門ガイド - Docker で K3s を実行するための詳細なチュートリアル

k3dとは何ですか? k3d は、Docker で K3s クラスターを実行するための小さなプログ...

Win10システムにMySQL 8.0をインストールするときに発生する問題を解決する

Win10 システムに MySQL 8.0 をインストールする際に発生する問題と解決策は次のとおりで...

jQueryはアコーディオンの小さなケースを実装します

この記事では、アコーディオンを実装するためのjQueryの具体的なコードを参考までに紹介します。具体...

Linux でのマルチスレッドおよびマルチプロセス クラッシュのシミュレーションに関する簡単な説明

結論:マルチスレッド環境では、スレッドの 1 つがクラッシュすると、他のスレッド (プロセス全体) ...