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
...
create
イメージからコンテナを作成する
$ docker create IMAGE
inspect
コンテナの詳細情報を表示する
$ docker inspect NAME|ID
pull
レジストリからイメージまたはリポジトリをプルする
$ docker pull NAME
start
停止しているコンテナを実行する
$ docker start ID|NAME
stop
コンテナを停止する
$ docker stop ID|NAME
attach
コンテナへアタッチ
$ docker attach ID|NAME
コンテナからデタッチする場合、
Ctr-p
とCtr-q
を入力することで起動状態のままデタッチできるCtr-c
の場合はコンテナを終了してデタッチする
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 .