読者です 読者をやめる 読者になる 読者になる

sessanの日記

主に開発技術関連でお勉強したことをまとめていくサイトです。

DockerホストのディレクトリをマウントしたコンテナでApacheが書き込みに失敗するときの対応

qiita.com

と同じ症状で悩んでいたが、Mac OS Xのdockerだと、マウントした側のコンテナではファイルの所有者が 1000:1000ではなく、1000:staffになっていたので、

RUN usermod -u 1000 www-data \
    && groupmod -g 1000 www-data

ではなく、

RUN usermod -u 1000 www-data \
    && usermod -G  staff,www-data www-data

のようにして、www-dataのユーザーIDを1000にし、www-dataをstaffグループとwww-dataグループの両方に追加することで、コンテナ側からもホストのディレクトリに無理やり書き込めるようにした。

pyenvのインストール

久々にPythonの環境をちゃんと作ろうと思い、自分用のメモ。

rbenvと同じような使い方をしたいので、公式サイトの手順に従ってhomebrewでpyenvをインストール。 GitHub - yyuu/pyenv: Simple Python version management

$ brew update
$ brew install pyenv

brewでpyenvをインストールしたときのメッセージにしたがって、.bash_profileに以下を追加する。

if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

brewでインストールしたときのメッセージを再表示したいときは、以下を実行

$ brew info pyenv

python 3でPyramidが動作するバージョンでも入れてみる。

$ pyenv install 3.2.3

稼働中のDockerコンテナにターミナル接続をする

稼働中のコンテナ上でコマンドを実行するためにdocker execを使う。

その上で-itオプションを指定し、/bin/bashを使う。

exec コマンドの書式は以下の通り。

$ docker exec (option) (コンテナ名) (コマンド)

実際に使うコマンドは以下のような感じ。-iはinteractiveで、-tはttyの略。

$ docker exec -it my_container /bin/bash

Mac上のDockerホストのIPを確認する

初歩的なところから記憶に残すためにメモしていく。

MacではネイティブでDockerが動作しない。

Docker Toolboxをインストールすると、VirtualBox上にboot2dockerというlinux端末が作られ、それをDockerホストとして、コンテナが作成される。

このDockerホストの情報は、Mac上からはdocker-machineのコマンドで確認できる。 DockerホストのIPを確認したい場合は、docker-machineのipコマンドを指定する。

$ docker-machine ip
192.168.99.100