めも

メモ.

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 ...などが続く。

参考文献など

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。