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 分割演算子の理解と応用
目次関数呼び出しの最適化関数呼び出しの最適化MySQL 関数は、内部的に決定論的または非決定論的とし...
問題の説明: 非同期リクエストの数が不確定な場合、数百の http リクエストが瞬時に発生したときに...
序文最近は、PC、iPad、携帯電話、スマートウォッチ、スマートテレビなど、さまざまなデバイスが存在...
1. パラダイムこのパラダイムの英語名は Normal Form であり、1970 年代にリレーショ...
序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...
目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...
目次1. 事前準備1.1 Node.jsをインストールする1.2 webpackをインストールする1...
インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...
目次クラスコンポーネントイベントバインディング関数コンポーネントイベントバインディング要約するRea...
序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...
序文以前、画像とテキストの垂直方向のずれの問題について説明しました。ここで示した小さな例では、小さな...
目次1. v-bindの主要ソースコードの分析1. v-bind属性はどこに均一に保存されるか: a...
最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...
まずはコードを見てみましょう: ALTER TABLE reportblockdetail ADD ...
CSS のみを使用してどのような充電アニメーション効果を作成できるかを見てみましょう。バッテリーを...