ドッカーは初めてです。 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
何か不足していますか?
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
の実行が終了すると終了します。
shellinit
を使用して環境をすばやくセットアップできます
コマンドプロンプトで次を実行します。
$(boot2docker shellinit)
これにより、環境変数が設定およびエクスポートされ、他の機能が初期化されます。
を使用して端末で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ステートメントを出力します)
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
私もこのエラーを受け取りました。ただし、私は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
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
そして、ドッカーは再び動作します
Linuxでは、まずターミナルでSudo service docker start
を実行します。
CentOS 7を使用していて、yum経由でDockerをインストールした場合は、実行することを忘れないでください:
$ Sudo systemctl start docker
$ Sudo systemctl enable docker
これによりサーバーが起動し、起動時に自動的に再起動します。
環境をセットアップし、今後のセッションに備えて環境を維持するには、次を実行します。
echo 'export DOCKER_Host="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc
次に:source ~/.bashrc
そして、あなたの環境はすべてのセッションでセットアップされます
最初の/var/run/docker.sockは、boot2docker仮想マシンの同じパスを参照します。 Windows /var/run/docker.sockに正しく書き込みます
あなたはOPではないかもしれませんが、ドッカー(特に初心者)で物事を正しくするためにハックしてスラッシュする回数のために、誰かがすでに/var/run/docker.sock/
というディレクトリを持っている可能性があります。そのディレクトリを削除して、再試行してください。
これは、Centos 7で動作させるための方法を教えてくれました。