Dockerをsudoとして実行する


12

boot2dockerをインストールして実行しました:

./boot2docker start
 export DOCKER_HOST=tcp://localhost:4243

Dockerサイトからチュートリアルを開始しました。

私は一つのことを理解していません-私が実行したとき:

sudo docker info
==>
Get http:///var/run/docker.sock/v1.11/info: dial unix /var/run/docker.sock: no such file or directory

しかし、それなしsudoで実行すると動作します:

MacCris:bin cristianc$ docker info
Containers: 2
Images: 10
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Dirs: 14
Execution Driver: native-0.2
Kernel Version: 3.14.1-tinycore64
Debug mode (server): true
Debug mode (client): false

チュートリアルのようにsudoで実行してもうまくいかない理由はありますか(少なくとも私にとって)。


2
これは、sudoを使用するとenvがクリアされるためです。あなたはTCPインターフェースを介して接続されているためにsudoここで使用する必要はありません
cpuguy83

回答:


15

DOCKER_HOST環境変数が設定されていません。これを確認するには、次を実行します。

> env

次に、sudoとして:

> sudo env

せずにDOCKER_HOST変数セット、ドッキングウィンドウはデーモンに接続することはできません。


3

試してください:

sudo DOCKER_HOST=$DOCKER_HOST docker run

これにより、必要な環境変数がで利用可能になりますsudo


2

DOCKER_HOSTsudoを使用してdockerコマンドを実行するときにプロファイルの変数を使用可能にするには、次の行をsudoersファイルに追加します。で開く:

sudo visudo

追加:

Defaults        env_keep += "DOCKER_HOST"

1

boot2dockerを使用している場合は、/Applicationフォルダーに移動してコマンドを実行します

$(boot2docker shellinit)

DOCKER_HOST環境内の変数を修正します。


0

環境変数DOCKER_HOSTを設定して、tcp://192.168.59.103:2375私のために動作します。

最も簡単な方法は、コマンドラインでこれを実行することです(OSX / Unix / Linuxマシンの場合):

export DOCKER_HOST=tcp://192.168.59.103:2375
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.