10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker for windows で /var/run/docker.sock をマウントできるようにする

Last updated at Posted at 2018-10-23

動作確認環境

以下のバージョンで確認しています。

Docker for windows : Docker 18.06.1-ce

背景

80番ポートを使うコンテナを複数起動したい時、もっとも簡単なソリューションがjwilderさんが公開されているリバースプロキシコンテナを使うことだと思います。

nginxを使ったリバースプロキシ on Docker
https://qiita.com/ka2asd/items/372d30be64c57a8a81b1

これならnginxのconfigすら必要ありません。
httpだけではなくhttpsにも対応しています。所定の場所に証明書を配置するだけの圧倒的手軽さ。素晴らしい。

んが、Docker for Windowsで使用する場合、ちょっぴり問題があります。
/var/run/docker.sockをマウントする必要があるのですが、そこでエラーが出るのです。

エラーメッセージ

Cannot create container for service portainer: b'Mount denied:\nThe source path "\\\\var\\\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'

こんな時はgoogle先生に助けてもらうのが一番です。

結果、githubにissueがたっているのを発見しました。

docker-compose bind mount docker.sock not a valid Windows path
https://github.com/docker/for-win/issues/1829

長くスレッドが伸びているので要点だけ書きます。

やること

docker-compose.ymlの並びに.envを作成する

- project_dir
  +--- docker-compose.yml
  +--- .env

.envの内容

./.env
COMPOSE_CONVERT_WINDOWS_PATHS=1

以上!

元記事の下のほうに、stableじゃなくedge版のDocker for Windowsを使う必要があるとか書いてあって顔に縦線入ったのですが、試したみたところ現時点(2018/10/23)のstableの最新で問題なく動作しました。

では良いDockerライフを。

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?