実験で使用するため。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 ...
などが続く。