dockerを使うことが多くなってきたので
自分なりにまとめてみる
Dockerfile
Dockerコンテナ上に稼働させるイメージを作るための構成図的なもの。
「どのOSを使う?」「ミドルウェアは何をインストールする?」「何を実行させる?」を書いておくことで、自分好みのイメージを作ることができる。
※Dockerfileの作り方
build
Dockerfileから独自のイメージを作成するときに使用するコマンド
Dockerfileをカレントディレクトリに配置してコマンドを実行する。
-t
オプションによって、Dockerimageに任意の名前を付けることができる。
docker bulid -t <name> ./
images
buildしたイメージを一覧化するコマンド
現在ホスト上に存在しているDockerimageを確認することができる
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<イメージ名> <タグ> <イメージID> XX minutes ago XXMB
tag
build済のイメージに対して、別のイメージ名とタグを付与するコマンド
docker tag image_1:latest image_2:centos
run
bulidしたDockerimageを使用して、ホスト上でコンテナを起動させるコマンド
よく使いそうなオプションだけ抜粋。そのほかはこちら
-i
標準入力を開き続ける。コンテナに入った後にコマンドを入力するときに指定する
-t
仮想的に端末を配置する。標準入出力先のデバイスを配置
-p
runさせたコンテナに接続するためのポートをホストに公開する 例: -p hostポート:コンテナポート
-d
バックグラウンドでコンテナをrunさせる
-name
任意の名前を付ける
--rm
コンテナが停止したときに自動で削除する
docker run -dp 3000:80 <イメージ名> -name <名前>
docker run -it <イメージ名>
ps
コンテナのプロセスを確認するコマンド
-a
オプションを指定すると、起動していないコンテナプロセスの確認ができる
stop
コンテナを停止させるコマンド
docker ps
コマンドででコンテナイメージを確認し、停止させると良い
docker stop <コンテナID>
start
停止させたコンテナを起動させるコマンド
docker run
は、コンテナイメージから新しくコンテナを立ち上げるものに対して
docker start
は、既存のコンテナイメージを起動させるもの
docker start <コンテナID>
attach,exec
稼働中のコンテナに接続するコマンド
attach
は、コンテナ内でシェルが既に動いている必要がある。コンテナを抜けるとコンテナが停止する。
exec
は、実行時にシェルを指定することができるため、既に動いている必要がない。コンテナを抜けてもコンテナは停止しない。
docker attach <コンテナID>
docker exec -it <コンテナID> /bin/bash
rm
コンテナを削除するコマンド
停止しているコンテナを削除する場合は、docker ps -a
でコンテナIDを確認してからが良い
docker rm <コンテナID>
rmi
DockerImageを削除するコマンド
docker images
コマンドで削除したいDockerImageを確認してからが良い
docker rmi <イメージID>