Docker-machineはDockerが公式に提供しているDocker管理ツールです。 これは docker-machine で簡単に実行できます。 Windows および MAC プラットフォームに docker をインストールして実行する 複数のDockerホストを構築および管理する スウォームクラスターの構築 環境は、Win にインストールされた VirtualBox、VirtualBox によってインストールされた CentOS7、ネットワーク モード NAT+hostonly です。 ip:192.168.56.102 (ホストのみ) 1. docker-machineをインストールします。 curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine 2. docker-machineのバージョンを確認します。 # docker-machine バージョン [root@docker ~]# docker-machine バージョン docker-machine バージョン 0.13.0、ビルド 9ba6da9 3. Centos7 環境でマシンを作成します。 [root@localhost ~]# docker-machine create -d virtualbox default CA を作成しています: /root/.docker/machine/certs/ca.pem クライアント証明書を作成しています: /root/.docker/machine/certs/cert.pem 作成前のチェックを実行しています... 作成前チェックのエラー: 「VBoxManage が見つかりません。VirtualBox がインストールされ、VBoxManage がパス内にあることを確認してください」 しかし、VirtualBoxによってインストールされたcentos7環境がVirtualBoxドライバーをサポートしていると考え、エラーを報告しましたが、環境のインストールはVirtualBoxドライバーをサポートしていることがわかりました。 virtualbox ドライバーを使用するには、virtualbox をインストールする必要があります。Ubuntu の場合の解決策は次のとおりです。 そのため、汎用ドライバーを使用します。詳細については、公式 Web サイトを参照してください: https://docs.docker.com/machine/drivers/generic/ [root@localhost ~]# docker-machine create -d generic --generic-ip-address=192.168.56.102 --generic-ssh-key ~/.ssh/id_rsa --
それでもエラーが発生します。これは、docker-machine がローカル マシン用のマシンを作成するときにも ssh 認証が必要になるためです。 [root@localhost ~]# ssh-keygen [root@localhost ~]# ssh-copy-id [email protected] パスワードを自分に送信し、マシンの作成を続行します。 [root@localhost ~]# docker-machine create -d generic --generic-ip-address=192.168.56.102 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm 作成前のチェックを実行しています... マシンを作成しています... (vm) SSH キーをインポートしています... マシンが実行されるのを待っています。これには数分かかる場合があります... 作成されたインスタンスのオペレーティング システムを検出しています... SSH が利用可能になるまで待機しています... プロビジョナーを検出しています... CentOS を使用したプロビジョニング... 証明書をローカル マシン ディレクトリにコピーしています... 証明書をリモート マシンにコピーしています... リモート デーモンで Docker 構成を設定しています... Dockerへの接続を確認しています... Docker が稼働しています! この仮想マシンで実行されている Docker エンジンに Docker クライアントを接続する方法を確認するには、次のコマンドを実行します: docker-machine env vm ついにマシンの作成に成功しました docker-machine をチェックしてください: [root@localhost ~]# docker-machine ls 名前 アクティブ ドライバー 状態 URL Swarm Docker エラー vm-generic 実行中 tcp://192.168.56.102:2376 v17.09.0-ce VM の環境変数を表示します。 [root@localhost ~]# docker-machine env vm エクスポート DOCKER_TLS_VERIFY="1" DOCKER_HOST="tcp://192.168.56.102:2376" をエクスポートします DOCKER_CERT_PATH をエクスポートします。 DOCKER_MACHINE_NAME="vm" をエクスポートします。 # シェルを設定するには、このコマンドを実行します。 # $(docker-machine env vm) を評価する 環境変数を読み込み: [root@localhost ~]# eval $(docker-machine env vm) ssh を使用してマシンにログインします。 [root@localhost ~]# docker-machine ssh --help 使用方法: docker-machine ssh [arg...] SSH を使用してマシンにログインするか、コマンドを実行します。 説明: 引数は[マシン名] [コマンド]です [root@localhost ~]# docker-machine ssh vm 最終ログイン: 2017年11月4日土曜日 17:55:53 192.168.56.102から [root@vm ~]# 次に、ローカル環境にコンテナを作成して起動します。 [root@localhost ~]# docker run -d --name=nginx nginx [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 6e62975fab90 nginx "nginx -g 'daemon ..." 約 1 分前 59 秒前に起動 80/tcp nginx 次に、docker-machine にリモートで ssh します。 [root@localhost ~]# docker-machine ssh vm 最終ログイン: 2017年11月4日土曜日 18:13:27 192.168.56.102から [root@vm ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 6e62975fab90 nginx "nginx -g 'daemon ..." 約 1 分前 起動 約 1 分 80/tcp nginx dockerホストとdocker-machineホストのコンテナIDが同じであることがわかります。 docker-machineを使用してdockerをインストールし、コンテナを作成します。 上記は、ローカルに自分用のマシンを作成する方法です。次に、リモート Docker ホスト用の docker-machine を作成します。 1. まず、192.168.101.14 とホスト 192.168.56.102 間の SSH 接続を認証します。 [root@docker ~]# ssh-keygen [root@docker ~]# ssh-copy-id [email protected] 2. マシンを作成します。 [root@docker ~]# docker-machine create -d generic --generic-ip-address=192.168.56.102 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root デフォルト CA を作成しています: /root/.docker/machine/certs/ca.pem クライアント証明書を作成しています: /root/.docker/machine/certs/cert.pem 作成前のチェックを実行しています... マシンを作成しています... (デフォルト) SSH キーをインポートしています... マシンが実行されるのを待っています。これには数分かかる場合があります... 作成されたインスタンスのオペレーティング システムを検出しています... SSH が利用可能になるまで待機しています... プロビジョナーを検出しています... CentOS を使用したプロビジョニング... 証明書をローカル マシン ディレクトリにコピーしています... 証明書をリモート マシンにコピーしています... リモート デーモンで Docker 構成を設定しています... Dockerへの接続を確認しています... Docker が稼働しています! この仮想マシンで実行されているDockerエンジンにDockerクライアントを接続する方法を確認するには、次のコマンドを実行します: docker-machine env default 環境変数を実行し、マシン環境に入ります。 [root@docker ~]# docker-machine env デフォルト [root@docker ~]# eval $(docker-machine env default) 3. 作成されたマシンを表示します。 [root@docker ~]# docker-machine ls 名前 アクティブ ドライバー 状態 URL Swarm Docker エラー デフォルト - 汎用 tcp://192.168.56.102:2376 v17.09.0-ce を実行中 192.168.101.14環境でリモートホスト192.168.56.102用に作成されたマシンを確認できます。 4. コンテナを作成します。 [root@docker ~]# docker run -d --name=nginx nginx (ローカルに nginx イメージはありません) b1f08986f6d5dbb1ede699e915bde734bab278fbe70f93af06ec2267fae2fef3 [root@docker ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 b1f08986f6d5 nginx "nginx -g 'daemon ..." 4 秒前 3 秒前にアップ 80/tcp nginx 5. マシンにSSH接続します。 [root@docker ~]# docker-machine ssh デフォルト 最終ログイン: 2017年11月4日土曜日 18:51:49 192.168.56.1から [root@default ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 b1f08986f6d5 nginx "nginx -g 'daemon ..." 23 秒前 22 秒前にアップ 80/tcp nginx 次に、リモート ホスト上にコンテナーが作成されているかどうかを確認します。 [root@localhost ~]# docker ps -a CA 証明書 "/root/.docker/machine/machines/default/ca.pem" を読み取れませんでした: /root/.docker/machine/machines/default/ca.pem を開いてください: そのようなファイルまたはディレクトリはありません エラーの原因: 192.168.56.102 に自分用のマシンをセットアップしたばかりなので、以前のマシンの環境変数を保持しています。今は削除しましたが、環境変数を設定しています。設定した環境変数をキャンセルします。 [root@localhost ~]# DOCKER_TLS_VERIFY の設定を解除 [root@localhost ~]# DOCKER_CERT_PATH の設定を解除する [root@localhost ~]# DOCKER_MACHINE_NAMEの設定を解除 [root@localhost ~]# DOCKER_HOSTの設定を解除 次に再度確認します: [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 b1f08986f6d5 nginx "nginx -g 'daemon ..." 8 分前 8 分前にアップ 80/tcp nginx リモートホストのコンテナが正常に作成されたことがわかります 現在、イメージ centos_nginx:v4 は 192.168.101.14 に存在しますが、リモート ホスト 192.168.56.102 にはこのイメージがありません。コンテナを作成して、リモート ホストが正常に作成できるかどうかを確認します。 [root@docker ~]# docker pull registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc:v4 [root@docker ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ nginx 最新 b72d63324dbb 13 時間前 108MB registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc v4 6c5128aaff05 2日前 464MB 次に、リモート ホストを確認します。 [root@localhost ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ nginx 最新 b72d63324dbb 13 時間前 108MB registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc v4 6c5128aaff05 2日前 464MB 2 つのホストのイメージが同期され、コンテナも同期されていることがわかります。 VMのDockerはVirtualBoxのDocker用のコンテナを作成でき、さらにローカルではdocker-machineを介してクラウドなどの他の環境用のコンテナを作成することができます。 以前は、マシン環境変数の設定により、192.168.101.14 のイメージが消えていました。 DOCKER_TLS_VERIFY の設定を解除 DOCKER_CERT_PATH の設定を解除する DOCKER_MACHINE_NAME の設定を解除 DOCKER_HOST の設定を解除 上記を実行してマシン環境変数をキャンセルし、元の環境に戻します。 [root@docker ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ centos_init v1 383ff3502443 26 時間前 448MB centos_nginx v8 6f792dc07c35 2日前 464MB centos_nginx v7 9e875385d6be 2日前 464MB centos_nginx v6 959fdf4d4288 2日前 464MB centos_nginx v5 5c1131306686 2日前 464MB registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc v4 6c5128aaff05 2日前 464MB 192.168.101.14:5000/centos_nginx v4 6c5128aaff05 2日前 464MB centos_nginx v4 6c5128aaff05 2日前 464MB centos_nginx v3 0e49a2c0562f 2日前 464MB centos_nginx v2 2031faf8894a 2日前 464MB centos_nginx v1 78d18f16e757 3日前 464MB レジストリ最新 2ba7189700c8 9日前 33.3MB ubuntu 最新 747cb2d60bbe 3 週間前 122MB centos 最新 196e0ce0c9fb 7 週間前 197MB マシン環境に戻る必要がある場合は、マシン環境変数の実行を続けます。この方法により、ローカルとリモートのイメージとコンテナが適切に分離されます。 docker における docker-machine の詳しい使い方については以上です。docker machine の使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Mysql sql スロークエリ監視スクリプトコード例
>>: JavaScript ES6 分割演算子の理解と応用
vue コンポーネントのスタイル タグ内には、背景画像を使用する次の CSS コードがあります。 背...
導入悠宇希の原文です。 vite は Vue CLI に似ています。vite も、基本的なプロジェク...
Gitlab と Github の違いについては、あまり説明する必要はありません。一言でまとめると、...
Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...
CSS3 アニメーション トランジションを使用して、リンクの上にマウスを移動すると小さなポップアップ...
技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...
ソフトウェアバージョンウィンドウズ: ウィンドウズ10 MySQL: mysql-8.0.17-wi...
1. 背景最近、友人が大規模なマップの読み込みが遅いという問題に遭遇しました。iServer のパ...
div または span に同時に CSS を適用する必要があります。コードをコピーコードは次のとお...
典型的なレイアウト例上の写真のように、正方形の真ん中に一定の隙間があり、その隙間は固定されています。...
まず、updatexml()関数を理解する UPDATEXML (XML ドキュメント、XPath ...
さらに興味深いコンテンツについては、https://github.com/abc-club/free...
目次CSS カスタム変数機能は古くから存在していますが、実際の開発ではあまり使用されていません。その...
1、%: 0 個以上の任意の文字を表します。あらゆるタイプと長さの文字に一致します。場合によっては、...
考えられる理由: Seata が MySQL 8 をサポートしない主な理由は、接続ドライバーがバージ...