すでにいくつかの基本的な使用のドッキングウィンドウを説明したように多数の容器をデプロイする必要がある場合は、操作中に作成された画像は、サーバー上のコンテナの展開は、我々が使用するより良い、より便利な方法を見つける必要があり、使用中に、狂ったと推定されますコンテナドッキングウィンドウ・コンレイアウトツールを説明するために、今日はそのうちの一つであります
簡単な紹介
作曲は、ドッカーコンテナで複数のアプリケーションを定義して実行するために使用するツールです。作曲を使用して、あなたは、サービスアプリケーションを構成するためにYAMLファイルを使用することができます。次に、単一のコマンドでは、コンフィギュレーションからすべてのサービスを作成して開始することができます。
、著者は、システムの運用・保守担当者ではないので、それはとても深く関わってないので、そのようK8Sとして当然のマルチ容器の配備の問題、より良いハンドリングのための現在の運用・保守システム、で使用するために設計されたコンテナの配置ツールとして、ドッキングウィンドウは、構成しますこの記事では、単純に自分の使用を記録し、ドッカ - コンを導入しています
機能
単一のホスト上の隔離環境の複数
互いに分離環境を使用するプロジェクト名を構成します。たびに私たちは、自動的に私たちはお互いに、非常に便利な環境からの特定に役立つであろう、複数のコンテナを作成ドッカ - コンを使用します
- 開発ホストでは、そのようなあなたのように、各機能ブランチはプロジェクトの安定したコピーである時に、単一の環境の複数のコピーを作成します
- CIサーバーで、相互干渉を構築防ぐために、プロジェクト名は、固有のビルド番号に設定することができます
- 相互干渉の同じサービス名異なるプロジェクトを使用する可能性を防止するために、共有ホストまたはホスト上に展開
ここでは使用することができ-p
ますが、テストの下でインストールすることができ、プロジェクト名コンが開始設定したパラメータを
のみ変更されたコンテナを再作成するには
構成コンテナを作成するために使用されるキャッシュを構成します。あなたはサービスが変更されない再起動すると、既存のコンテナの再利用を構成します。再利用コンテナを使用すると、非常に迅速に環境を変えることができることを意味します。私たちは、容器のセットを構成する使用を開始するときに我々は、我々はupdateコマンドの容器を実行すると、ドッキングウィンドウ-構成するミラーが使用されているコンテナを更新した場合、すべてのコンテナが更新されないが、例えば、それは、コンテナの画像を変更するだけで更新します
共有ファイルとプロジェクト構成
コンは、変数の定義は、文書を構成するサポートしています。あなたは、公式ドキュメントを参照して、異なる環境または異なるユーザ定義の組み合わせにこれらの変数を使用することができます。
https://docs.docker.com/compose/extends/
手順を使用します
- それはどこにでも複製することができるように、アプリケーション環境、Dockerfileを定義します
- 彼らは隔離された環境で一緒に実行できるように、アプリケーションサービス、ドッキングウィンドウ-compose.ymlを構成するものの定義
- 実行アップドッキングウィンドウ-構成し、アプリケーション全体稼働して構図を
インストール
まず、あなたがドッキングウィンドウ環境をインストールした後、ドッキングウィンドウ-コンをインストールする必要があり、それがcentos7環境にインストールされました
1.環境に依存してインストールします。
sudo yum install epel-release
sudo yum install -y python-pip
2.インストール]ドッキングウィンドウ、コン
sudo pip install docker-compose
使用例
私自身のサイトでは、例えば、現在、アリのクラウドサーバーがドッキングウィンドウ-構成次のように現在の環境を使用して展開する個人のウェブサイト上で展開:
- nginxのフロントエンド
- ソロブログサービス
- MySQLデータベース
システムの一部のブログ、私は幽霊、ワードプレスを展開している、軽量なブログのソロを選択し、今私にとっては複雑すぎると感じていない、後者はより適切な代替かもしれ
唯一のクラウドサーバが、私はまだ役に立たないものの、単にマルチ実際、nginxの単一ノード、ソロ2ノード、mysqlの単一ノードのように、クラスタサービスを展開し、現在の環境はとても個人的なブログです
プロファイル
ドッキングウィンドウ-compose.ymlファイルを作成し、vimの操作は、以下のように変更されている説明の下にいくつかの場所で:
再配備または移行コンテナの問題に次回のために、独自のサーバ実際のディレクトリやファイルに、つまり、ホストにファイルを保存する必要性をマッピングするための設定ファイルを復元することができないで、もし、点に留意すべき何のネットワーク構成、およびホストとなしポートマッピングは、それがコンテナのこのグループはお互いを訪問することができるように、独自のネットワークを作成しませんが、外の世界にアクセスすることができない、ホストが動作しません。ここでnginxの容器ポートマッピングは、コンテナのこのグループは2つだけのポートを介してアクセスすることができます
nginxの設定ファイル、上流構成されている場合、対応するサーバー書き込みsolo_1:対応するコンフィギュレーション・ファイルに8080、あなたはどこnginxの設定ファイルの一部として、ドメイン名solo_1コンテナサービスに対応した血管のこのグループを置くことを理解することができ、設定するには、自分で情報を見つけるために、あまりにも多くの複雑な部品をはみ出さないでください
version: '2'
services:
solo_db:
image: mysql:latest
container_name: solo_db
volumes:
- /var/solomysql/data:/var/lib/mysql # 将数据库文件映射到本地服务器便于迁移
restart: always
expose:
- 3306
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_USER: root
MYSQL_PASSWORD: so
MYSQL_DATABASE: so
solo_1:
depends_on:
- solo_db
image: b3log/solo:v3.6.3
container_name: solo_1
volumes: # 日志配置文件和皮肤映射便于我配置修改,添加皮肤
- /root/solodata/log4j.properties:/opt/solo/WEB-INF/classes/log4j.properties
- /root/solodata/skins/:/opt/solo/skins/
links:
- solo_db
expose:
- 8080
restart: always
environment:
RUNTIME_DB: MYSQL
JDBC_USERNAME: so
JDBC_PASSWORD: so
JDBC_DRIVER: com.mysql.jdbc.Driver
JDBC_URL: jdbc:mysql://solo_db:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
command: --listen_port=8080 --server_port=80 --server_scheme=https --server_host=www.gclearning.cn
solo_2:
depends_on:
- solo_db
image: b3log/solo:v3.6.3
container_name: solo_2
volumes:
- /root/solodata/log4j.properties:/opt/solo/WEB-INF/classes/log4j.properties
- /root/solodata/skins/:/opt/solo/skins/
links:
- solo_db
expose:
- 8080
restart: always
environment:
RUNTIME_DB: MYSQL
JDBC_USERNAME: so
JDBC_PASSWORD: so
JDBC_DRIVER: com.mysql.jdbc.Driver
JDBC_URL: jdbc:mysql://solo_db:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
command: --listen_port=8080 --server_port=80 --server_scheme=https --server_host=www.gclearning.cn
solonginx:
image: docker.io/nginx:1.0 # 我自己将官方nginx镜像时区修改了下重新打包的镜像,用官方镜像也可,日志部分时间相差8个时区
container_name: solonginx
links:
- solo_1
- solo_2
ports:
- 80:80
- 443:443
volumes: # nginx配置文件,静态资源,证书等目录映射到宿主机上,可根据需要自行配置
- /root/solonginx/nginxconfig/nginx.conf:/etc/nginx/nginx.conf
- /root/solonginx/nginxconfig/conf.d:/etc/nginx/conf.d
- /root/solonginx/log/:/var/log/nginx/
- /root/solonginx/nginxconfig/cert/:/etc/nginx/cert/
- /root/solonginx/nginxconfig/www/:/var/www/
実行コンテナグループ
ドッキングウィンドウ・コンディレクトリでは、作成し、以下のコマンドを実行して、あなたは、コンテナのグループを開始することができます
docker-compose up -d
docker-compose ps
容器のステータスがアップして確認してください、次のようにそれは、コンテナが作成されることを意味します。
私たちはnginxの設定を変更する場合、それらはnginxのコンテナを再起動するだけのために、次のコマンドを実行します。
docker-compose restart solonginx
概要
便利な方法を操作しながら、コンテナのセットを提供してくれるドッキングウィンドウ・作曲など振り付け、ポート、ネットワーク、ハードウェア構成の必要性我々は良いを定義した後の出現後の場合は、我々は簡単に、複数のサービス間での移行、展開することができます問題は、運用・保守担当者の生産性が大幅に解放さ、外部のサービスを提供するために、グループの環境を起動しない、だけでなく、もはや頭痛の束をインストールする必要が瞬時に、我々はデータの移行を着陸することができ、復元することができない環境に依存して、我々がする必要はありません個々のサービスのレコード間の関係、約他の構成心配
学習の過程ではとドッキングウィンドウを使用して、より多くの運用・保守(O&Mは、私はないですが)、当然の開発者は、その使用を理解する必要があり、そしてあなたがよりオープンが表示されますため、この技術の重要性を感じますフィールド
ご質問がある場合は上記の指摘してください、私は速やかに修正検証します、ありがとうございました