docker
Kitematic

「DOCKER CLI」で、”接続を拒否されました”的なことを言われた場合の対処方法

More than 3 years have passed since last update.

Docker Toolboxをインストールすると導入されるKitematic。
環境やバージョンによって「DOCKER CLI」からdockerコマンドを実行すると下の様なメッセージがでて怒られる場合があります。

Get http:///var/run/docker.sock/v1.20/containers/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

こんな時は、Dockerの環境変数が有効となっていないので、次のコマンドをCLI(Windowsの場合はコマンドプロンプト)で実行します。(machine名のdefaultは環境に合わせて変更してください。)

1.OS Xの場合

1.1.docker-machineの設定確認

docker-machine env default

↑の実行結果例↓

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/xxxxxxxx/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval "$(docker-machine env default)"

1.2.docker-machineの設定を反映

「eval "$(docker-machine env default)"」をCLI上で実行。
これで、dockerコマンドが正常に機能します。


2.Windowsの場合

注意:Kitematicの「DOCKER CLI」からは現在デフォルトの設定では有効とならないためWindowsのコマンドプロンプトから実行します。

2.1.失敗した例:「docker ps」の実行

> docker ps
An error occurred trying to connect: Get https://127.0.0.1:2375/v1.20/containers/json: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection
 could be made because the target machine actively refused it.

2.2.docker-machineの設定確認

> docker-machine env default --shell cmd
set DOCKER_TLS_VERIFY=1
set DOCKER_HOST=tcp://192.168.99.100:2376
set DOCKER_CERT_PATH=C:\Users\xxxxxxxx\.docker\machine\machines\default
set DOCKER_MACHINE_NAME=default
# Run this command to configure your shell:
# copy and paste the above values into your command prompt

2.3.上の環境変数をコマンドプロンプトへコピペ

> set DOCKER_TLS_VERIFY=1
> set DOCKER_HOST=tcp://192.168.99.100:2376
> set > DOCKER_CERT_PATH=C:\Users\xxxxxxxxi\.docker\machine\machines\default
> set DOCKER_MACHINE_NAME=default

2.4.動作確認:「docker ps」の実行

>docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

無事dockerコマンドが実行されました。