LoginSignup
6
5

More than 5 years have passed since last update.

boot2dockerで初心者がつまずいたこと(マウント関係とか)

Last updated at Posted at 2015-02-01

Windowsでもお手軽にdockerするならboot2dockerということで(Macもそうだけど)、開発環境整えるのにハマったポイントを書くという、ありふれたごくつまらない話です。

ホスト⇔ゲスト の共有ディレクトリのこと

boot2docker 初回起動 up すると、だいたい共有ディレクトリがWindowsなら/c/Users/、Macなら/User/がホスト⇔ゲストでマウントされるんですが、マウントしているということそのものを頭においておかないといけなかった。

ちなみにboot2docker-vmのルート直下に、/c/Users/, /User/があり、初回起動時にすでにあると思う。

boot2docker-vm内でホスト側とマウントしたディレクトリは権限が変えられない

これはそういうものだというしかないです(マウントしたら当たり前だとか言われそうだけど、知らなかった)。それはコンテナのマウントオプション(これは(ホスト=)ゲストのホストとの共有ディレクトリ=コンテナのマウント!)を指定してコンテナを起動したコンテナ内での権限も同様です。

$ docker run -d -p 80:80 \
  -v /c/Users/yourname/projects/repo/html:/var/www/html \ # マウントオプションでホストとの共有ディレクトリを指定
  --name apache darekano/apache
$ docker exec -it apache bash # コンテナの中に入る
root@7eaf997110d8:/# cd /var/www/html # くどいけど、コンテナの中のここはホスト=ゲストの共有ディレクトリ
root@7eaf997110d8:/var/www/html# ls -al
total 2
drwxrwxrwx 1 1000 staff   4096 Feb  1 13:29 .
drwxr-xr-x 4 root root    4096 Feb  1 13:28 ..
-rwxrwxrwx 1 1000 staff   5667 Nov  5 09:08 .htaccess
-rwxrwxrwx 1 1000 staff   2642 Nov  5 09:06 index.html # ownerがこのようになってる
root@7eaf997110d8:/var/www/html# chown -R www-data /var/www/html # としたところで
root@7eaf997110d8:/var/www/html#  ls -al
drwxrwxrwx 1 1000 staff   4096 Feb  1 13:29 .
drwxr-xr-x 4 root root    4096 Feb  1 13:28 ..
-rwxrwxrwx 1 1000 staff   5667 Nov  5 09:08 .htaccess # 変わらない

なので、 boot2docker でホスト側で共有ディレクトリにしたところにdockerでマウントさせる時は、chown, chmod の類の権限は諦めましょう。(ということなのだろうか)

例えば、Dockerfile内に、

RUN chmod -R www-data /var/www/html

と書いてあったとしても結果的にはそうならない。docker logs にどう残るかまでは見てないんだけど。

docker run -v のマウントするディレクトリは存在してはいけない

さっきと同じのコピペです

$ docker run -d -p 80:80 \
  -v /c/Users/yourname/projects/repo/html:/var/www/html \ # マウントオプションでホストとの共有ディレクトリを指定
  --name apache darekano/apache

この時、/c/Users/yourname/projects/repo/html/ は存在してはいけない。これ、基本的なことなんだろうけど、小1時間それではまってたので。


本日は以上です。

6
5
2

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
6
5