検索
ホームページ運用・保守DockerDocker を使用して Consul KV を構成する方法

HashiCorp の Consul は、複数の機能を提供する多用途ツールです 最新の DevOps 環境で。サービスの発見に広く使用されています。 ヘルスチェック、ロードバランシング、そして特に分散キーバリューとして (KV)ストア。 Consul の KV ストアは動的保存に最適です 構成データ、機能フラグ、シークレット、およびメタデータを高度なレベルで管理します。 インフラストラクチャ全体で一貫した方法で利用できるため、 分散システム内のサービスによって動的にアクセスされる可能性があります。使用する Consul の KV ストアを構成する Docker により、迅速なセットアップと 隔離された環境なので、テストと開発に最適です。

このチュートリアルでは、セットアップと開発のプロセスについて説明します。 Docker を使用して Consul の KV ストアを構成します。最後には、 KV ペアを使用して Docker で実行される完全に機能する Consul インスタンス 設定済みでアクセス可能です。この設定は動的サービスに不可欠です

ステップ 1 — Consul Docker イメージをプルする

Docker Hub から公式の Consul イメージをプルしましょう。この画像は HashiCorp によって保守されており、Consul を実行するために必要なものがすべて含まれています。

Ubuntu Droplet のコンソールにログインし、実行:

docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

ステップ2 — Consul コンテナの実行

Consul イメージがダウンロードされたので、新しい Consul を開始できます 容器。このコンテナは Consul サーバーとして機能し、 KV ストアと対話できるようになります。

コンテナを起動するには、実行:

docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul
c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba

はこちらこのコマンドの動作:

  • -d はコンテナーを分離モード (バックグラウンド) で実行します。
  • --name=consul-server はコンテナーに名前を割り当てます。
  • -e CONSUL_BIND_INTERFACE=eth0 は、Consul がバインドするネットワーク インターフェイスを設定します。これは適切なネットワーク通信に必要です。
  • -p 8500:8500 は、Consul Web UI と API ポートをホストにマップします。
  • -p 8600:8600/udp は、DNS サービス ポートをマップします。サービス検出。

このステップは、コア Consul サービスを設定するため重要です。 KV ストアの設定に使用します。

ステップ 3 — Consul のインストールの確認

Consul が正しく実行されていることを確認するには、コンテナのステータスを確認し、Consul UI にアクセスする必要があります。

まず、docker ps を実行して実行中のコンテナをすべてリストし、Consul コンテナが

❯ docker ps                                                                                                      CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                                                                    NAMES
c893b6707686   hashicorp/consul   "docker-entrypoint.s…"   51 seconds ago   Up 50 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server

次に、Consul がアクセス可能かどうかを確認し、Web ブラウザを開いて、 http://localhost:8500. に移動すると、Consul UI が表示されます。

これ検証ステップは、領事が次のことを行っていることを確認するために重要です。 データを KV に保存する前はインスタンスが問題なく実行されている store (ステップ 5).

ステップ 4 — ファイアウォールの構成 (オプション)

Consul インスタンスに外部からアクセスする必要がある場合 (例: クラスター内の他のノード)、ファイアウォール設定を次のように調整する必要があります。 必要なポートでトラフィックを許可します。

たとえば、クラウド インスタンスで Consul を実行している場合、次のようにすることができます。 ポート 8500 (HTTP API) および 8600 (DNS) での受信トラフィックを許可する必要があります。 特定のコマンドは、ファイアウォール ソリューション (UFW、

このステップにより、Consul インスタンスが他のインスタンスからアクセスできるようになります。

ステップ 5 — キーと値のペアの保存

Consul を実行すると、KV ストアを使用してキーと値のペアを保存できるようになります。 構成データ。 Consul CLI を使用してキーと値のペアを追加するか、 Web UI。

CLI 経由でキーと値のペアを保存するには、実行:

docker exec -it consul-server consul kv put config/db_host 
192.168.1.100
Success! Data written to: config/db_host
docker exec -it consul-server consul kv put config/db_port 3306         Success! Data written to: config/db_port

はこちらこのコマンドの動作:

  • -it - ローカル システムからコンテナへの対話型ターミナルを起動します。
  • consul kv put - kv put コマンドは、指定されたパス KV にデータを書き込みます。 store.
  • config/db_host - を保存するパスvalue.
  • 192.168.1.100 - Value.

Web UI を使用して、

  1. Consul UI に移動します (http://localhost:8500).
  2. 「キー/値」をクリックします
  3. 「作成」をクリックして新しいキーを作成します。
  4. キー (例: config/db_host) と値 (例: 192.168.1.100) を入力します。

これらのコマンドとアクションは、サービスが動的にアクセスできる重要な構成データを保存します。 runtime.

ステップ 6 — キーと値のペアの取得

いくつかの KV ペアを保存したら、それらを取得して正しく保存されていることを確認します。

CLI を使用して、次のように値を取得します。コマンド:

docker exec -it consul-server consul kv get config/db_host     
192.168.1.100

Web UI を使用して、

  1. Go Consul の「Key/Value」タブへUI。
  2. 作成したキーを見つけてクリックし、保存されている値を確認します。

Web GUI

KV ペアの取得は、次の目的に必要な手順です。データが正しく保存され、アクセスできることを確認します。

ステップ 7 — Docker を使用したデータの永続化ボリューム

デフォルトでは、Docker コンテナは一時的です。つまり、あらゆるデータが コンテナが取り外されると、その中に保存されているデータは失われます。持続するために Consul KV データを使用するには、Docker ボリュームを使用する必要があります。

  1. 現在の Consul を停止して削除しますコンテナ:
docker stop consul-server 
docker rm consul-server

さて、コンテナを確認すると、Consul コンテナが含まれていないことがわかります。走っている

docker ps CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

2. Docker ボリュームを使用して新しい Consul コンテナを実行します添付:

docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp -v consul_data:/consul/data hashicorp/consul
2d2a7d3ff1911c2283e70506d68391a5cbf9c935a2ae447bfb8fa21481989ef1
docker ps
OutputCONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                                                                    NAMES
2d2a7d3ff191   hashicorp/consul   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server

-v consul_data:/consul/data オプションは、Docker ボリュームをコンテナにマウントし、コンテナの再起動後も KV ストアが保持されるようにします。

ステップ 8 — Consul の起動を自動化する (オプション)

運用環境の場合デプロイメントの場合、起動を自動化することもできます。 Docker Compose を使用して Consul コンテナを作成します。 Docker Compose による簡素化 マルチコンテナの Docker アプリケーションを使用できるようになり、管理が容易になります services.

次の内容を含む docker-compose.yml ファイルを作成します:

docker-compose,yml
services:
  consul:
    image: hashicorp/consul:latest    environment:
      - CONSUL_BIND_INTERFACE=eth0    volumes:
      - consul_data:/consul/data 
    ports:
      - "8500:8500"
      - "8600:8600/udp"
    restart: alwaysvolumes:
  consul_data:

それでは、実行:

docker-compose up -d
Output[ ] Running 2/2
 ✔ Network work_default     Created                                                                                                           0.0s 
 ✔ Container consul-server  Started                                                                                                           0.1s
docker ps
OutputWARN[0000] /Users/anandhkumar/work/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
NAME            IMAGE                     COMMAND                  SERVICE   CREATED          STATUS          PORTS
work-consul-1   hashicorp/consul:latest   "docker-entrypoint.s…"   consul    40 seconds ago   Up 11 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp

これコマンドは Consul を自動的に起動し、失敗した場合には確実に再起動するため、運用環境での使用に対してより堅牢になります。

ステップ 9 — クリーンアップ

Consul インスタンスの操作が終了したら、次のことを行う必要があります。 Docker 環境をクリーンアップしてリソースを解放してください。

Consul を停止して削除しましょうコンテナ:

docker stop consul-server   
docker rm consul-serverdocker ps
outputCONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

の場合Consul は完了です。Docker を削除することもできます画像:

docker rmi hashicorp/consul
outputhashicorp/consul@sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Deleted: sha256:eff8ccb509560987755a70df8d6c0b9410538d503d99498ae1ea9f48066b0439
Deleted: sha256:b5e6402bbb78eb061d538505a30300ef7f612104eaf0f11b17839a9b29bc5603
Deleted: sha256:1c61ada2ad8074615120d13bd805260d766ae8424cafbda4bded529d6a204d6f
Deleted: sha256:9b36da670e2a59f1d81c6e3c9d55906c576b384df51272977e5a9caea7131e74
Deleted: sha256:8c6e52c441c246f60ca146b71204b7d6511df75fa87a0dc0a0f91141964e8fd9
Deleted: sha256:1fce18208235de2be3c419764ec1d469229af5387447d21649c841632c653cef
Deleted: sha256:68e0a114c9c35b9aa8cac31fa32b27f886361bc85fcc63f34e882e9128f33a14
Deleted: sha256:3da5b888208a9b19694bfeaf8c74a432b50f44542d717c9e1f3ab273e505855a
Deleted: sha256:dea73e9287e6e2f3b7f9fcac4f20767d7badeefa24e52f990f1674e98abfa1a3
Deleted: sha256:201fa22d1f4c7d6e7ec43135c63b2260f303f4864f5eb43569faaa1731628799

クリーニングup は、整然とした開発環境を維持し、Docker リソースが不必要に消費されないようにするのに役立ちます。

以上がDocker を使用して Consul KV を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はdigitalocean.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
docker中rm和rmi有什么区别docker中rm和rmi有什么区别Jul 14, 2022 am 11:02 AM

docker中rm和rmi的区别:rm命令用于删除一个或者多个容器,而rmi命令用于删除一个或者多个镜像;rm命令的语法为“docker rm [OPTIONS] CONTAINER [CONTAINER...]”,rmi命令的语法为“docker rmi [OPTIONS] IMAGE [IMAGE...]”。

docker官方镜像有哪些docker官方镜像有哪些May 12, 2022 pm 02:23 PM

docker官方镜像有:1、nginx,一个高性能的HTTP和反向代理服务;2、alpine,一个面向安全应用的轻量级Linux发行版;3、busybox,一个集成了三百多个常用Linux命令和工具的软件;4、ubuntu;5、PHP等等。

docker容器重启后数据会丢吗docker容器重启后数据会丢吗Jun 17, 2022 am 10:41 AM

docker容器重启后数据会丢失的;但是可以利用volume或者“data container”来实现数据持久化,在容器关闭之后可以利用“-v”或者“–volumes-from”重新使用以前的数据,docker也可挂载宿主机磁盘目录,用来永久存储数据。

docker是免费的吗docker是免费的吗Jul 08, 2022 am 11:21 AM

docker对于小型企业、个人、教育和非商业开源项目来说是免费的;2021年8月31日,docker宣布“Docker Desktop”将转变“Docker Personal”,将只免费提供给小型企业、个人、教育和非商业开源项目使用,对于其他用例则需要付费订阅。

docker能安装oracle吗docker能安装oracle吗Jul 08, 2022 pm 04:07 PM

docker能安装oracle。安装方法:1、拉取Oracle官方镜像,可以利用“docker images”查看镜像;2、启动容器后利用“docker exec -it oracle11g bash”进入容器,并且编辑环境变量;3、利用“sqlplus /nolog”进入oracle命令行即可。

docker存储空间不足怎么办docker存储空间不足怎么办Jul 22, 2022 pm 03:44 PM

解决方法:1、停止docker服务后,利用“rsync -avz /var/lib/docker 大磁盘目录/docker/lib/”将docker迁移到大容量磁盘中;2、编辑“/etc/docker/daemon.json”添加指定参数,将docker的目录迁移绑定;3、重载和重启docker服务即可。

docker容器管理ui有哪些docker容器管理ui有哪些May 11, 2022 pm 03:39 PM

容器管理ui工具有:1、Portainer,是一个轻量级的基于Web的Docker管理GUI;2、Kitematic,是一个GUI工具,可以更快速、更简单的运行容器;3、LazyDocker,基于终端的一个可视化查询工具;4、DockStation,一款桌面应用程序;5、Docker Desktop,能为Docker设置资源限制,比如内存,CPU,磁盘镜像大小;6、Docui。

什么是docker最早支持的存储引擎什么是docker最早支持的存储引擎May 12, 2022 pm 03:27 PM

AUFS是docker最早支持的存储引擎。AUFS是一种Union File System,是文件级的存储驱动,是Docker早期用的存储驱动,是Docker18.06版本之前,Ubuntu14.04版本前推荐的,支持xfs、ext4文件。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。