web-dev-qa-db-ja.com

docker error:/var/run/docker.sock:no such file or directory

ドッカーは初めてです。 Impalaにデータを読み込むシェルスクリプトがあり、実行するdockerファイルでイメージをビルドしてコンテナーを実行する必要があります。私はMacにいて、boot2dockerをインストールし、DOCKER_Host envをセットアップしています。

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

次を使用してビルド済みイメージをインストールしようとしています。

Sudo docker pull busybox

私はこのエラーを受け取ります:

Sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

Dockerセットアップに何か問題がありますか?

docker pull busyboxを実行すると、イメージがプルされ、ダウンロードが完了します。

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

何か不足していますか?

85
user1189851

boot2docker VMに渡されるすべてのコマンドはデフォルトでルートとして実行されるため、boot2dockerを使用している場合、Sudoとしてdockerコマンドを実行する必要はありません。

SudoにはDOCKER_Host envが設定されておらず、ユーザーのみが設定されているため、Sudoとして実行しているときにエラーが表示されます。

これを確認するには、次を実行します。

$ env

それから

$ Sudo env

そして、各出力でDOCKER_Hostを探します。

スクリプトを実行するdockerファイルについては、次のようなことがうまくいくかもしれません。

Dockerfile

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

その後、次を実行できます。

docker build -t your-image-name:your-tag .

これにより、ドッカーイメージが構築されます。

docker images

次に、コンテナを実行するには、次の操作を実行できます。

docker run your-image-name:your-tag

この実行コマンドは、Dockerfileとビルドコマンドで作成したイメージからコンテナーを開始し、script.shの実行が終了すると終了します。

86
Chris McKinnel

shellinitを使用して環境をすばやくセットアップできます

コマンドプロンプトで次を実行します。

$(boot2docker shellinit)  

これにより、環境変数が設定およびエクスポートされ、他の機能が初期化されます。

45
user848337

を使用して端末でboot2docker-vmを起動すると、MACで


boot2docker start

私は次を見る


To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=
    export DOCKER_TLS_VERIFY=1
    export DOCKER_Host=tcp://:2376

これらの環境変数を設定した後、問題なくビルドを実行できました。

pdate [2016-04-28] dockerの最新バージョンを使用している場合は、次のことができます

eval $(docker-machine env)は環境を設定します

docker-machine envはexportステートメントを出力します)

25
Jerome Anthony

docker pullが実行されていない場合、docker serviceは失敗します。実行されていることを確認してください

:~$ ps aux | grep docker
root     18745  1.7  0.9 284104 13976 ?   Ssl  21:19   0:01 /usr/bin/docker -d

実行されていない場合は、次の方法で開始できます。

Sudo service docker start

Ubuntu 15以降で使用

Sudo systemctl start docker

24
Harikrishnan

私もこのエラーを受け取りました。ただし、私はboot2dockerを使用しませんでしたが、Ubuntuに "plain" dockerをインストールしました( https:// docs.docker.com/installation/ubuntulinux/ )。

Dockerdaemonが原因でエラー(「dial unix /var/run/docker.sock:no such file or directory。TLSなしでTLS対応デーモンに接続しようとしていますか?」)が発生しました。まだ実行されていませんでした

Ubuntuでは、サービスを開始する必要があります

Sudo service docker start

参照 http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64

16
Jörg

Windows上boot2dockerについては、見た後:

FATA[0000] Get http:///var/run/docker.sock/v1.18/version: 
dial unix /var/run/docker.sock: no such file or directory.  
Are you trying to connect to a TLS-enabled daemon without TLS?

私がしたことは:

boot2docker start
boot2docker shellinit

生成されたもの:

export DOCKER_CERT_PATH=C:\Users\vonc\.boot2docker\certs\boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_Host=tcp://192.168.59.103:2376

最後に:

boot2docker ssh

そして、ドッカーは再び動作します

9
VonC

Linuxでは、まずターミナルでSudo service docker startを実行します。

6
Mohsen Kashi

CentOS 7を使用していて、yum経由でDockerをインストールした場合は、実行することを忘れないでください:

$ Sudo systemctl start docker
$ Sudo systemctl enable docker

これによりサーバーが起動し、起動時に自動的に再起動します。

5
Lee Benson

環境をセットアップし、今後のセッションに備えて環境を維持するには、次を実行します。

echo 'export DOCKER_Host="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc

次に:source ~/.bashrc

そして、あなたの環境はすべてのセッションでセットアップされます

4
Lt.

最初の/var/run/docker.sockは、boot2docker仮想マシンの同じパスを参照します。 Windows /var/run/docker.sockに正しく​​書き込みます

0
M. Dicon

あなたはOPではないかもしれませんが、ドッカー(特に初心者)で物事を正しくするためにハックしてスラッシュする回数のために、誰かがすでに/var/run/docker.sock/というディレクトリを持っている可能性があります。そのディレクトリを削除して、再試行してください。

これは、Centos 7で動作させるための方法を教えてくれました。

0
pjammer