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

dockerでのコンテナ作成、削除関係のコマンド一覧

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

参考文献など