tanish-kr's learning log

Learning output log

Docker

Docker基礎

イメージの実行

$ docker run debian echo "Hello World"
  • Docuer Hubをチェックし、最新バージョンのDebianのイメージがダウンロードされる(ダウンロードされている場合)
  • Debianのコンテナでechoコマンドを実行

基本コマンド

run

新しいコンテナでコマンドを実行する

コンテナ内でshellを実行

$ docker run -i -t debian /bin/bash

ps

起動中のコンテナ一覧を表示する

$ docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS      PORTS                                                  NAMES
...

inspect

コンテナの詳細情報を表示する

$ docker inspect NAME|ID

pull

レジストリからイメージまたはリポジトリをプルする

$ docker pull NAME

start

コンテナを実行する

$ docker start ID|NAME

stop

コンテナを停止する

$ docker stop ID|NAME

attach

コンテナへアタッチ

$ docker attach ID|NAME

kill

コンテナの強制終了

$ docker kill ID|NAME

top

コンテナ内のプロセス監視

$ docker top ID|NAME

rm

コンテナを削除する

images

イメージ一覧の取得。-aオプションですべてのイメージが確認できる

$ docker images -a

rmi

イメージの削除

$ docker rmi IMAGE_ID

Dockerfile

DockerfileはDockerのイメージを生成するための一連の手順を記述する。buildコマンドでイメージをビルドする

  • カレントディレクトリにDockerfileが存在する場合
$ docker build .
  • パスを指定してビルド
$ docker build -f /path/to/Dockerfile .

フォーマット

FROM

使用するベースイメージ。必須。

RUN

任意のコマンドを実行する

CMD

コンテナで実行するメインのコマンド。Dockerfile内で1つしか記述できない

EXPOSE

コンテナが公開するポート番号

ENV

コンテナの環境変数。セットした環境変数は永続化される

ADD

ホストのファイルをコンテナ内にコピーする

ADD <src> <dest>

VOLUME

VOLUMEはホスト、他のコンテナにマウントするポイントを設定することが出来る。マウントすることで、ホスト、他のコンテナとファイルシステムを共有することが可能。

USER

実行するusername, またはUIDをセット

WORKDIR

作業ディレクトリを設定

ARG

buildコマンドに指定できる引数を設定

FROM busybox
USER ${user:-some_user}
ARG user
USER $user
$ docker build --build-arg user=what_user .