web-dev-qa-db-ja.com

Dockerマシンはどのようにアクティブとしてマークされますか?

私は 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などのコマンドでマシン名を指定し続ける必要がないことを意味します

21
Jay Killeen

私は次のコマンドを実行するだけでうまくいくと思います:

$ eval $(docker-machine env default)

(ここでdefaultはマシンの名前です)。

*の理由は、現在接続しているマシンを通知するためです。 docker psを実行すると、どのDockerエンジンと通信しますか?

Dockerマシンの現在のバージョンでは、常に名前を指定する必要があると思います。

39
Adrian Mouat

マシンをアクティブにするには、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

ドック

5
Sathishbabu

そのかなり単純な答えは、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ターミナルを開くと、元のデフォルトコンテナー(この例ではステージング)がアクティブになります。

2
Anshuman Manral