Dockerのコマンドおさらい
ウィズテクノロジー技術ブログ、今回はDockerコマンドについてです。
便利だけど、把握するのが大変なこのコマンドをおさらい形式でまとめてみました。
はじめに
最近では業務でも、開発環境に Docker を使うことが増えてきました。
Docker を上手く使えば、端末で環境をすぐに差分なく再現出来るので、チームで開発することの助けになります。
そんな Docker のコマンドですが、割と多くて把握するのが大変です。
この記事では、それらのコマンドを順に実行して行っておさらいしていきます。
イメージの取得と確認
Docker では、イメージというものからコンテナを作成します。
イメージから、実際の動作環境となるコンテナを作成し、その上でアプリケーションを実行します。
このようにイメージとコンテナの関係は、ある意味でプログラムとプロセスの関係に似ています。
このセクションでは、イメージの検索、取得、確認を行います。
- docker search
- docker pull
- docker images
イメージの検索
Docker のイメージは、Docker Hub などのレジストリで公開・配布されているものが多いです。
ちょうどソースコードが GitHub で公開・配布されるのと似ています。
Docker Hub でイメージを検索するためには、docker search
コマンドを使います。
以下で、centos のイメージを検索します。
$docker search centos
すると、以下のようにコンソール出力されます。
1 2 3 4 5 6 7 |
NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 4392 [OK] ansible/centos7-ansible Ansible on Centos7 112 [OK] jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_… 97 [OK] consol/centos-xfce-vnc Centos container with "headless" VNC session… 55 [OK] tutum/centos Simple CentOS docker image with SSH access 42 |
イメージの取得
先ほど、docker search
でcentos
というイメージがあることがわかりました。
今度は、このイメージをダウンロードします。
$docker pull centos
イメージの確認
ちゃんとダウンロード出来たか、イメージの一覧を表示して確認します。
$ docker images
以下のようにコンソール出力されると思います。
centos のリポジトリーのイメージがあることがわかります。
1 2 3 |
REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 49f7960eb7e4 2 weeks ago 200MB |
コンテナの起動と確認、停止、削除
Docker では、実行される環境として、コンテナを使います。
すでに centos のイメージがあるので、これからコンテナを作ってみます。
- docker run
- docker ps
- docker attach
- docker exec
- docker logs
- docker stop
- docker kill
- docker start
コンテナの起動
コンテナを起動して、その実行環境で画面にHello Docker
と出力させています。
$ docker run centos echo "Hello Docker"
あとで利用しますが、バックグラウンドで起動する場合には-d
オプションをつけます。
コンテナの一覧を表示
稼働中のコンテナの一覧は、以下のコマンドで表示できます。
1 2 |
$ docker ps |
停止中の コンテナも含めたコンテナの 一覧は、-a
オプションで表示できます。
1 2 |
$ docker ps -a |
上を 実行すると、先ほど起動したコンテナも表示されます。
1 2 |
e8872ca73309 centos "echo 'Hello Docker'" About a minute ago Exited (0) About a minute ago hungry_goldstine |
起動中のコンテナに接続
docker attach
で、起動中のコンテナに接続できます。
接続するためには、起動中のコンテナが必要なので、デタッチモードでコンテナを起動します。
1 2 |
$ docker run -d centos |
すると、以下のようなコンテナのIDが出力されます。
1 2 |
10de7cc2fbaaf58178e7e9a3e591592b9f563235d0494bf977b6b67d684953e3 |
コンテナのIDを使って、起動中のコンテナに接続してみましょう。
CONTAINERの部分をコンテナのIDにしてください。
1 2 |
$ docker attach CONTAINER |
コンテナとの接続を解除するためには、CTRL + p + q
を使います。
コンテナから抜けると同時にコンテナを停止する場合、CTRL + 1
またはexit
が使えます。
コンテナで追加プロセスを実行
次は、起動中のコンテナでシェルのプロセスを実行してみます。
1 2 |
$ docker exec -i -t CONTAINER COMMAND |
以下のようにすれば、バッシュのシェルにログインできると思います。
1 2 |
$ docker exec -i -t 73d8d048d658b423bb38e4d83da92b70fdf0357f967282a1a8bfc26a2452eac4 /bin/bash |
通常のターミナルのように、exit
で抜けることができます。
コンテナのログを表示
以下でコンテナが作成されてからの標準出力が表示されます。
1 2 |
$ docker logs CONTAINER |
コンテナの詳細を確認
以下でコンテナの状態が確認できます。
1 2 |
$ docker inspect CONTAINER |
コンテナを停止する。
docker stop
とdocker kill
はどちらもコンテナを停止させるコマンドです。
docker stop
はメインのコンテナプロセスにSIGTERM
を送信、一定時間後にSIGKILL
を送信します。
docker kill
は、メインのコンテナプロセスにSIGKILL
を直ちに送信します。
1 2 |
$ docker stop CONTAINER |
1 2 |
$ docker kill CONTAINER |
コンテナを再起動
停止したコンテナを再起動するには、以下のコマンドを使います。
1 2 |
$ docker start CONTAINER |
コンテナの削除
作成したコンテナは、以下で削除できます。
1 2 |
$ docker rm CONTAINER |
まとめ
一通り、Dockerのコマンドをおさらいしましたが、これはまだ一部です。
興味があれば、公式ドキュメントを参照ください。
最後までお読みくださり、ありがとうございました。
☆☆☆ 新しいことにチャレンジしたい!仲間と一緒に成長したい!やりがいのある仕事で充実した毎日を過ごしたい!そんな熱意をお持ちの方、私たちと一緒に働きませんか?ウィズテクノロジーでは一緒に働いていただけるエンジニアを大阪・東京で募集しています。☆☆☆