1. Docker Composeの概要 Compose は、マルチコンテナ Docker アプリケーションを定義および実行するためのツールです。 Compose では、YAML ファイルを使用してアプリケーションのサービスを構成します。その後、1 つのコマンドで、構成からすべてのサービスを作成して起動できます。 Compose は、本番環境、ステージング環境、開発環境、テスト環境、CI ワークフローなど、あらゆる環境で動作します。 Compose の使用は基本的に 3 つのステップで構成されます。
docker-compose.yml 形式の例は次のとおりです。 バージョン: '3' サービス: ウェブ: 建てる: 。 ポート: - 「5000:5000」 ボリューム: - .:/コード -logボリューム01:/var/log リンク: - レディス レディス: 画像: redis ボリューム: ログボリューム01: {} Compose には、アプリケーションのライフサイクル全体を管理するコマンドがあります。
2. Docker Composeのインストール 2.1 バイナリのダウンロードとインストール root@docker01:~# sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose root@docker01:~# sudo chmod +x /usr/local/bin/docker-compose 2.2 pip によるインストール (推奨) root@docker01:~# apt-get -y pythonをインストールします root@docker01:~# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py root@docker01:~# python get-pip.py #PIP をインストール root@docker01:~# pip install docker-compose #docker compose をインストールします root@docker01:~# docker-compose version #インストールの確認 3つのDocker Composeの例 3.1 アプリケーションの構築 root@docker01:~# mkdir composetest #Docker Compose ディレクトリを作成root@docker01:~# cd composetest/ root@docker01:~/composetest# vi app.py ヒント: Python を使用して簡単なアプリケーションを構築します。具体的なアプリケーションの内容については、公式の例を参照してください。 3.2 Dockerfileを作成する root@docker01:~/composetest# vi Dockerfile #Dockerfileを使用してイメージをビルドします FROM python:3.4-alpine RUN mkdir /root/.pip #pipソース設定ディレクトリを作成 ADD pip.conf /root/.pip/pip.conf #ビルドするイメージに国内のpipソースを追加 ADD ./code WORKDIR /コード RUN pip install -r requirements.txt #pip を使用してファイル リストに従ってインストールします CMD ["python", "app.py"] ヒント: 上記の Dockerfile 関連コマンドについては、「004.Docker イメージ管理」を参照してください。 root@docker01:~/composetest# vi requirements.txt #インストールソフトウェアリストファイルを作成する flask レディス root@docker01:~/composetest# vi pip.conf #国内のpipソースを元にファイルを作成 [global] インデックス URL = https://mirrors.aliyun.com/pypi/simple/ [インストール] 信頼できるホスト = mirrors.aliyun.com Dockerfile の説明:
3.3 Docker Compose を使用したサービスの構築 root@docker01:~/composetest# vi docker-compose.yml バージョン: '3' サービス: ウェブ: 建てる: 。 ポート: - 「5000:5000」 レディス: 画像: "redis:alpine" Docker Compose の説明: この Compose ファイルは、web と redis という 2 つのサービスを定義します。 Web サービス:
redis サービス: Docker Hub から取得したパブリック Redis イメージを使用します。 root@docker01:~/composetest# docker-compose up -d #ビルドを開始 4つの検証確認 ブラウザアクセス: http://172.24.8.111:5000/ ルート@docker01:~/composetest# docker-compose ps ルート@docker01:~/composetest# docker ps root@docker01:~/composetest# docker イメージ ls ヒント: Docker Compose を使用してビルドされたコンテナ名ルールは、[ビルドが配置されているディレクトリ]_[yml ビルド ファイルで定義されたサービス名]_[コンテナの起動シーケンス番号] です。 5マウントボリューム構造 root@docker01:~/composetest# vi docker-compose.yml バージョン: '3' サービス: ウェブ: 建てる: 。 ポート: - 「5000:5000」 ボリューム: - .:/コード レディス: 画像: "redis:alpine" root@docker01:~/composetest# docker-compose up -d #再度ビルドroot@docker01:~/composetest# vi app.py … 'Hello Docker! {} 回見られました。\n' を返します。format(count) … ブラウザアクセス: http://172.24.8.111:5000/ ヒント: ローカル ボリュームをコンテナーにマウントした後、ローカル ファイルをすばやく変更して、イメージを再構築せずにコンテナーを動的に変更できます。 6. Docker Composeのその他の一般的なコマンド docker-compose up -d: サービスをバックグラウンドで実行します。 docker-compose ps: 現在実行中のコンテナを表示します。 docker-compose run: docker-compose run web env などの 1 回限りのコマンドを実行します。 docker-compose stop: docker-compose stop webなどのサービスを停止します。 ヒント: docker-compose は、コンテナ名や ID ではなく、yaml 内のサービス名をパラメーターとして受け取ります。 docker-compose down --volumes: コンテナを完全に削除し、コンテナが使用するデータ ボリュームも削除します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: MySQL の 4 つのトランザクション分離レベルの詳細な説明
目次序文:ウォーターフォールレイアウトとは何ですか?達成方法: 1. 画像を取得する2. 画像の帯域...
Dockerコンテナのインストール時に遭遇しやすい2つの問題1.ポートはすでに割り当てられています(...
この記事では、Ubuntu 18.04でのVMware Toolsのインストールと設定について記録し...
まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...
目次バージョンノートプロジェクトを作成する依存関係をインストールするコンテンツの記入src/serv...
すべてのプラットフォーム用の MySQL ダウンロードは、MySQL ダウンロードから入手できます。...
目次1. マスタースレーブレプリケーションマスタースレーブレプリケーション3スレッドマスタースレーブ...
背景: 一部の実験はサーバー上で完了する必要があります。したがって、リモート サーバー上のコードをロ...
MySql 自動切り捨て例の詳細な説明友人が質問しました。プロジェクト内で挿入または更新ステートメン...
これはかなり前に書かれた記事です。今となっては、その中の考え方は学ぶ価値があるように思えます。jb5...
目次1. トランザクションとは何ですか? 2. トランザクションに関連するステートメントは、挿入、削...
Docker を起動したら、利用できるオプションを見てみましょう。 公式のものがある場合は、もちろ...
製品デザインのプロセスにおいて、デザイナーは常に写真を非常に美しくすることを好みます。仮想ページのコ...
これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...
最近、社内の業務調整により、以前の超長文のロジックが大幅に変更されたため、リファクタリングする予定で...