実験で使用するため。Mac OS X、Docker version 1.13.0環境での内容。 HPOlibがなかなか動かせないので一度Dockerfileを作っておきたくてその時の作業メモ。
イメージ
イメージ一覧
docker image ls
イメージ取得
docker pull IMAGE_NAME
ubuntu 14.04の環境で実験を行いたい場合は
docker pull ubuntu:14.04
イメージ削除
docker rmi IMAGE_ID
既存のコンテナからイメージを作成
docker commit CONTAINER_ID
コンテナ
公式のリファレンスなどを参照したほうがいい。
コンテナ一覧
docker ps -a
コンテナ起動
docker run -d -p 8888:80 --name CONTAINER_NAME IMAGE_NAME
-p 8888:80によってlocalhost:8888とコンテナのポート80をつなぎます。
コンテナに指定した名前をつけて起動して、コンテナに入る
docker run -it --name="CONTAINER_NAME" IMAGE_NAME:TAG_NAME /bin/bash
ubuntu:14.04の場合を例にすると、
docker run -it --name="demo2" ubuntu:14.04 /bin/bash
ホスト側のディレクトリをコンテナ内にマウント
コンテナ内でMac上のディレクトリへのアクセスをできるようにして、そこでファイルをやり取りしたい場合に利用。dockerコマンドを実行しているディレクトリ$(pwd)以下のDIRNAMEディレクトリとコンテナ内のABS_PATH_TO_DIRディレクトリをつなげます。
docker run -it --name="CONTAINER_NAME" -v $(pwd)/DIRNAME:ABS_PATH_TO_DIR IMAGE_NAME:TAG_NAME /bin/bash
具体的には
docker run -it --name="demo2" -v $(pwd)/mount:/mount2 ubuntu:14.04 /bin/bash
など。
コンテナ削除
削除前に停止する必要があります。
docker stop CONTAINER_ID;docker rm CONTAINER_ID
Dockerfile関係
以下のようなDockerflieを作成して、ビルドします。こうすることでDockerfileさえあれば同じ環境をいつでも作る事ができます。Dockerfileの中身を適当に記述して…
FROM ubuntu:14.04
MAINTAINER misos <sample@hoge.com>
RUN locale-gen en_US.UTF-8
ENV LC_ALL en_US.UTF-8
RUN \
apt-get update \
apt-get -y install \
software-properties-common \
vim \
wget \
unzip \
curl \
git-core \
python-dev \
python-pip \
python-numpy \
python-nose \
python-scipy \
python-pandas \
python-protobuf \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
上記ファイルを DOCKERFILE_DIRディレクトリ以下に保存、そして
docker build DOCKERFILE_DIR
を実行。DOCKERFILE_DIRはDockerfileのあるディレクトリ。
普段はRUN apt-get update ...の後に RUN pip2 install ...などが続く。