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 を使用して、
- Consul UI に移動します (http://localhost:8500).
- 「キー/値」をクリックします
- 「作成」をクリックして新しいキーを作成します。
- キー (例: 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 を使用して、
- Go Consul の「Key/Value」タブへUI。
- 作成したキーを見つけてクリックし、保存されている値を確認します。
KV ペアの取得は、次の目的に必要な手順です。データが正しく保存され、アクセスできることを確認します。
ステップ 7 — Docker を使用したデータの永続化ボリューム
デフォルトでは、Docker コンテナは一時的です。つまり、あらゆるデータが コンテナが取り外されると、その中に保存されているデータは失われます。持続するために Consul KV データを使用するには、Docker ボリュームを使用する必要があります。
- 現在の 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 ファイルを作成します:
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 サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









