ドッカーの群れ
-
環境の準備
1、准备三台已近安装docker engine的centos/Ubuntu系统主机(docker版本必须在1.12以上的版本,老版本不支持swarm) 2、docker容器主机的ip地址固定,集群中所有工作节点必须能访问该管理节点 3、集群管理节点必须使用相应的协议并且保证端口可用 集群管理通信:TCP,端口2377 节点通信:TCP和UDP,端口7946 覆盖型网络(docker网络):UDP,端口4789 overlay驱动 说明:三台容器主机的ip地址分别为: 192.168.200.162(管理节点) 192.168.200.163(工作节点) 192.168.200.158(工作节点) 主机名称分别为:manager1、work1以及work2 vim /etc/hostname (修改完成后需要重启)
-
ドッキングウィンドウの群れを作成します。
1、在manager1机器上创建docker swarm集群 docker swarm init ‐‐advertise‐addr 192.168.200.162 (‐‐advertise‐addr将该IP地址的机器设置为集群管理节点;如果是单节点,无需该参数) 2、查看管理节点集群信息: docker node ls
-
作業中ドッカーの群れにノードを追加する:実行は、以下のコマンドは、それぞれ、二つのノードで動作する、IPアドレス管理ノード
1、添加两个work节点 docker swarm join ‐‐token xxx 192.168.200.162:2377 (worker1) docker swarm join ‐‐token xxx 192.168.200.162:2377 (worker2) (‐‐token xxx:向指定集群中加入工作节点的认证信息,xxx认证信息是在192.168.200.162创建docker swarm时产生的) 2、继续查看管理节点集群信息与之前的区别 docker node ls
-
ドッキングウィンドウの群れ内で展開サービス(管理ノードの実行)
- あなたはどちらかのビルトインドッカーハブのミラーサービスを開始するために使用して、ドッカースウォームクラスタでサービスを展開する場合、また
Dockerfileサービスを開始するために構築を通じて自分のイメージを使用することができます。 - あなたがサービスを開始するDockerfileによって構築独自のイメージを使用する場合は、最初の中央倉庫をミラーリングドッカーハブにプッシュする必要があります。(アルパイン選択されたランダムドッカーハブのミラーイメージ)
docker service create ‐‐replicas 1 ‐‐name helloworld alpine ping docker.com docker service create指令:用于在Swarm集群中创建一个基于alpine镜像的服务 ‐‐replicas参数:指定了该服务只有一个副本实例 ‐‐name参数:指定创建成功后的服务名称为helloworld ping docker.com指令:表示服务启动后执行的命令
- あなたはどちらかのビルトインドッカーハブのミラーサービスを開始するために使用して、ドッカースウォームクラスタでサービスを展開する場合、また
-
[表示]ドッキングウィンドウ群れのクラスタサービス
查看服务列表:docker service ls 查看部署具体服务的详细信息:docker service inspect 服务名称 查看服务在集群节点上的分配以及运行情况:docker service ps 服务名称
-
コピーの数を変更します
在manager1上,更改服务副本的数量(创建的副本会随机分配到不同的节点) docker service scale helloworld=5
-
サービス(管理ノード)を削除します。
docker service rm 服务名称
-
アクセスサービス
1、查看集群环境下的网络列表:docker network ls 2、在manager1上创建一overlay为驱动的网络(默认使用的网络连接ingress) docker network create ‐d=overlay my‐multi‐host‐network 3、在集群管理节点manager1上部署一个nginx服务 docker service create \ ‐‐network my‐multi‐host‐network \ ‐‐name my‐web \ ‐p 8080:80 \ ‐‐replicas 2 \ nginx 4、在管理节点查看服务的运行情况: docker service ps my‐web
ドッカーコン
インストールのドッキングウィンドウのコン
1、环境要求:Docker Compose是依赖于Docker引擎的,所以在安装Docker Compose之前
要确保机器上已经安装了Docker。https://github.com/docker/compose/releases(查看docker compose版本)
2、下载docker‐compose工具
curl ‐L
https://github.com/docker/compose/releases/download/1.24.0/docker‐
compose‐`uname ‐s`‐`uname ‐m` ‐o /usr/local/bin/docker‐compose
3、设置docker compose可执行文件权限
chmod +x /usr/local/bin/docker‐compose
r:read w:write x:ex
4、查看docker compose版本
docker‐compose ‐‐version
PS:卸载docker compose
sudo rm /usr/local/bin/docker‐compose
使用(作成された空のディレクトリで実行)
- 書き込みDockerfileファイル(各サービスのために簡単に移行するためのミラーを構築する必要があります - 必要はありません)
- 書き込みドッキングウィンドウ-compose.ymlファイル(準備命令に関連する導入サービス)
- ランアップドッカ-構成(YMLファイルサービスを開始)
1、准备:两个镜像
docker pull mysql:5.7
#一个博客系统镜像
docker pull wordpress
2、需要新建一个空白目录,例如rwtest。新建一个docker‐compose.yml,编辑该文件:
version: '3'
#创建服务的容器
services:
#db容器
db:
image: mysql:5.7
volumes:
‐ db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
#wordpress容器
wordpress:
depends_on:
‐ db
image: wordpress:latest
ports:
‐ "8001:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
该文件中内容:新建db和wordpress容器。等同于:
docker run ‐‐name db ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql
docker run ‐‐name some‐wordpress ‐‐link db:mysql ‐p 8002:80 ‐d wordpress
3、启动docker compose
docker‐compose up
4、浏览器访问:http://ip:8001
5、停止/重启服务:docker‐compose stop/restart
ドッキングウィンドウのコン手順
#例子
1 version: '3'
2 services:
3 web:
4 image: id/imagename:lable
5 restart: on‐failure
6 container_name: my‐web‐container
7 ports:
8 ‐ 8080:8080
9 networks:
10 ‐ example‐net
11 depends_on:
12 ‐ db
13 deploy:
14 replicas: 2
15 restart_policy:
16 condition: on‐failure
17 db:
18 image: mysql:5.6
19 restart: on‐failure
20 container_name: my‐mysql‐container
21 ports:
22 ‐ 3306:3306
23 volumes:
24 ‐ example‐mysql:/var/lib/mysql
25 networks:
26 ‐ example‐net
27 environment:
28 MYSQL_ROOT_PASSWORD: root
29 MYSQL_DATABASE: mysql_database
30 deploy:
31 replicas: 1
32 restart_policy:
33 condition: on‐failure
34 placement:
35 constraints: [node.role == manager]
36 networks:
37 example‐net:
38 volumes:
39 example‐mysql:
- バージョン:バージョンは非常に(XMLファイルの制約に似ている)ファイルの内容の制約バージョン(バージョン、説明のためのより多くのサポートが高い)を表しドッキングウィンドウ-compose.ymlファイルを一番上に通常あります
- サービスを宣言するために使用されるサービスは、WebとDB上の例のように、サービスの代わりに、両方のサービスの名前の下にインデントしているすべてのアプリケーション。マルチサービス展開を行う際に、どのように多くのサービスを展開する必要がある、あなたは、次の文では、サービスとサービスパラメータの数を設定する必要があります
- 画像:スタートコンテナは(自動的にローカル引っ張らない場合)、ミラーに依存する必要があります
- 再起動:サービス戦略を再起動します
- 再起動:「なし」#サービスのデフォルトは、サービスに障害が発生した後に任意のアクションなし、である、ないではありません
- 再起動:常に#は、サービスが再開されていたであろうことを示しています
- 再起動:再起動するように求められたときに、失敗#は、サービス障害エラーを表し、
- 再起動:のみのサービスが停止した後に再起動されますしない限り、停止#手段
- CONTAINER_NAME:指定されたコンテナの名前
- ポート:指定サービス外部に露出したポート
- ネットワーク:指定されたコンテナを使用してネットワーク
- depends_on:サービスは、最初のWebサービスを開始しますので、サービスはウェブの例のように、依存関係サービスの決定に依存しては、DB、DBを依存しているが、それは、Webサービスを開始する前に正常に完了開始されていない平均デシベルサービスを行い、それだけで開始することを決定しましたオーダーのみ
- デプロイ:デプロイドッカー作曲パラメータは、群発クラスタ配置のために提供され、サブパラメータ特異サービス関連の設定で展開し、実行します
- レプリカ:サービスインスタンスのコピーの数を示しています
- restart_policy:パラメータを持つestart_policyの再起動が以前に同様の戦術を再起動するサービスを設定するために使用されている説明するが、デプロイの設定パラメータでは、このプロパティ、および、クラスタ環境で有効になります。パラメータは、サブ属性及び複数の属性値を含みます
- 条件:オン失敗#は、サービスの再起動の条件を表し、値はどれも、障害のあらゆるません
- 遅延:5S#間の待ち時間は、サービスを再起動表し、デフォルトは0です
- max_attempts:3位失敗した後に再起動しようとする試みの数を表し
- ウィンドウ:120S番号は、サービスが正常に起動するかどうかを判断するために待機する時間を示しています
- 配置:サービスが大群がランダムに管理ノードおよび他のノードでの作業に割り当てられますクラスタ環境に配備されたときのconfigure制約への配置場所を指定しました。【node.role ==マネージャ]サービスは、管理ノード・マネージャ上で実行されていることを指定:データは、MySQLネイティブ例えば、MySQLデータボリューム、副制約配置パラメータの使用をマウントするため、上記の例では:
- 必要な環境変数のための環境サービスの開始を設定します。上記の例では、MYSQL_ROOT_PASSWORD rootパスワードデータベースを示しているように、MYSQL_DATABASEデータベースが自動的に起動作成したデータベースを表します。
- ネットワーク:ネットワーク構成サービスのための
- ボリューム:ディレクトリがマウントされているが、上記の例では、データボリュームが存在しない場合は、サービスの開始時にデフォルトで作成され、ローカルの例-mysqlのデータボリュームにmysqlのデータをマウントすることです
します。https://docs.docker.com/compose/compose-file/他の構成を参照してもよいです