docker 覚書

素でdockerを使う場合.
更新していく予定.

dockerの操作

開始(インタラクティブ)
$ sudo docker run -it IMG CMD

終了時に自動破棄するには--rm

開始(デモナイズ&ポート転送)
$ sudo docker run -d -p 8080:8080 IMG
デタッチ
C-p C-q
アタッチ
$ sudo docker attach ID
停止したコンテナの再開
$ sudo docker start ID
コンテナの停止
$ sudo docker stop ID
停止しプロセスのないコンテナでプロセスを実行し入る
$ sudo docker exec -it ID CMD
コンテナの削除
$ sudo docker rm ID
プロセス表示
$ sudo docker ps [-a]
イメージ一覧
$ sudo docker images
イメージの削除
$ sudo docker rmi IMG

dockerの作成

Dockerfileを作成する

FROM ubuntu:14.04.5

ENV http_proxy http://proxyhost:proxyport/
ENV https_proxy http://proxyhost:proxyport/
ENV APTOPT Acquire::http::proxy=${http_proxy},Acquire::https::proxy=${https_proxy}
ENV APTSRC /etc/apt/sources.list
ENV PYENV_ROOT /root/.pyenv
ENV PATH ${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}
ENV PYENV_SHELL sh

RUN set -x && \
sed -i 's/archive.ubuntu.com/jp.archive.ubuntu.com/' ${APTSRC} && \
sed -i 's/^# \(.*\)multiverse$/\1multiverse/' ${APTSRC} && \
sed -i 's/^# \(.*\)trusty-backports\(.*\)$/\1trusty-backports\2/' ${APTSRC} && \
rm -rf /var/lib/apt/lists/* && \
apt-get -o ${APTOPT} update && \
apt-get -y -o ${APTOPT} upgrade && \
apt-get -y -o ${APTOPT} install git wget && \
cd /root && \
git clone https://github.com/yyuu/pyenv.git .pyenv && \
eval "$(pyenv init -)" && \
mkdir -p /home/python && \
pyenv install anaconda3-4.1.1 && \
pyenv rehash && \
pyenv global anaconda3-4.1.1

ENTRYPOINT ["jupyter","notebook","--ip=0.0.0.0","--port=8080","--notebook-dir=/home/python"]

イメージをビルドする

$ sudo docker build -t REPOSITORY:TAG PATH

Dockerfileの置いてあるディレクトリ内で実行する時は,PATHは.で良い.