私は https://docs.docker.com/v1.5/machine/ でDocker Machineユーザーガイドに取り組んでいます。
それは言う:
You can see the machine you have created by running the docker-machine ls command again:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.100:2376
The * next to dev indicates that it is the active Host.
これを実行すると、マシンの横に*が表示されません。マシンをアクティブとしてマークするには、何をする必要がありますか?これには何か利点がありますか?
たとえば、Windows 10でDockerマシンを実行しています。これをアクティブにすると、docker-machine env dev
などのコマンドでマシン名を指定し続ける必要がないことを意味します
私は次のコマンドを実行するだけでうまくいくと思います:
$ eval $(docker-machine env default)
(ここでdefault
はマシンの名前です)。
*の理由は、現在接続しているマシンを通知するためです。 docker ps
を実行すると、どのDockerエンジンと通信しますか?
Dockerマシンの現在のバージョンでは、常に名前を指定する必要があると思います。
マシンをアクティブにするには、Powershellを使用したDocker for Windows Containerの以下のコマンドを使用します。
#Powershell command
PS: docker-machine env default
#output might me like this
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_Host = "tcp://172.16.104.171:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\username\.docker\machine\machines\default"
$Env:DOCKER_MACHINE_NAME = "default"
#DOCKER_Host environmental variable should has same value as default machine
PS:$Env:DOCKER_Host = "tcp://172.16.104.171:2376" # should be same as default machine Env:DOCKER_Host
#Now list docker machines, default will be active.
PS: docker-machine ls
#default is not active and it look like this.
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * hyperv Running tcp://172.16.104.171:2376 v1.12.3
manager1 - hyperv Running tcp://172.16.104.168:2376 v1.12.3
ドック
そのかなり単純な答えは、Docker Webサイトの「DOCKER_Host環境変数がそれを指している場合、マシンはアクティブであると見なされる」というステートメントにあります: https://docs.docker.com/machine/reference/active/
それで、最初に言ってみましょう:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev - virtualbox Running tcp://192.168.99.103:2376
staging * digitalocean Running tcp://203.0.113.81:2376
チェックした場合:
$ echo $DOCKER_Host
tcp://203.0.113.81:2376 ====> it will point to staging
あなたが今しなければならないすべては(Dockerターミナルで試されます):
$ DOCKER_Host=tcp://192.168.99.103:2376
そして今あなたがチェックすると:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.103:2376
staging - digitalocean Running tcp://203.0.113.81:2376
アクティブなコンテナが「dev」に移動しました!!これ以降、「docker container ls」などのすべてのコマンドは、新しくアクティブになったコンテナーを反映するはずです。
ただし、この配置はデフォルトコンテナーを変更したDockerターミナルでのみ機能することに注意してください。つまり、新しいターミナルを閉じて再度開くか、別のDockerターミナルを開くと、元のデフォルトコンテナー(この例ではステージング)がアクティブになります。