INSIGHT

情報・インサイト

Dockerのコマンドおさらい

2019.05.29

ウィズテクノロジー技術ブログ、今回はDockerコマンドについてです。

便利だけど、把握するのが大変なこのコマンドをおさらい形式でまとめてみました。

 

はじめに

最近では業務でも、開発環境に Docker を使うことが増えてきました。

Docker を上手く使えば、端末で環境をすぐに差分なく再現出来るので、チームで開発することの助けになります。

そんな Docker のコマンドですが、割と多くて把握するのが大変です。

この記事では、それらのコマンドを順に実行して行っておさらいしていきます。

イメージの取得と確認

Docker では、イメージというものからコンテナを作成します。

イメージから、実際の動作環境となるコンテナを作成し、その上でアプリケーションを実行します。

このようにイメージとコンテナの関係は、ある意味でプログラムとプロセスの関係に似ています。

このセクションでは、イメージの検索、取得、確認を行います。

  • docker search
  • docker pull
  • docker images

イメージの検索

Docker のイメージは、Docker Hub などのレジストリで公開・配布されているものが多いです。

ちょうどソースコードが GitHub で公開・配布されるのと似ています。

Docker Hub でイメージを検索するためには、docker searchコマンドを使います。

以下で、centos のイメージを検索します。

$docker search centos

すると、以下のようにコンソール出力されます。

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 searchcentosというイメージがあることがわかりました。

今度は、このイメージをダウンロードします。

$docker pull centos

イメージの確認

ちゃんとダウンロード出来たか、イメージの一覧を表示して確認します。

$ docker images

以下のようにコンソール出力されると思います。

centos のリポジトリーのイメージがあることがわかります。

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オプションをつけます。

コンテナの一覧を表示

稼働中のコンテナの一覧は、以下のコマンドで表示できます。

$ docker ps

停止中の コンテナも含めたコンテナの 一覧は、-aオプションで表示できます。

$ docker ps -a

上を 実行すると、先ほど起動したコンテナも表示されます。

e8872ca73309 centos "echo 'Hello Docker'" About a minute ago Exited (0) About a minute ago hungry_goldstine

起動中のコンテナに接続

docker attachで、起動中のコンテナに接続できます。

接続するためには、起動中のコンテナが必要なので、デタッチモードでコンテナを起動します。

$ docker run -d centos

すると、以下のようなコンテナのIDが出力されます。

10de7cc2fbaaf58178e7e9a3e591592b9f563235d0494bf977b6b67d684953e3

コンテナのIDを使って、起動中のコンテナに接続してみましょう。

CONTAINERの部分をコンテナのIDにしてください。

$ docker attach CONTAINER

コンテナとの接続を解除するためには、CTRL + p + qを使います。

コンテナから抜けると同時にコンテナを停止する場合、CTRL + 1またはexitが使えます。

コンテナで追加プロセスを実行

次は、起動中のコンテナでシェルのプロセスを実行してみます。

$ docker exec -i -t CONTAINER COMMAND

以下のようにすれば、バッシュのシェルにログインできると思います。

$ docker exec -i -t 73d8d048d658b423bb38e4d83da92b70fdf0357f967282a1a8bfc26a2452eac4 /bin/bash

通常のターミナルのように、exitで抜けることができます。

コンテナのログを表示

以下でコンテナが作成されてからの標準出力が表示されます。

$ docker logs CONTAINER

コンテナの詳細を確認

以下でコンテナの状態が確認できます。

$ docker inspect CONTAINER

コンテナを停止する。

docker stopdocker killはどちらもコンテナを停止させるコマンドです。

docker stopはメインのコンテナプロセスにSIGTERMを送信、一定時間後にSIGKILLを送信します。

docker killは、メインのコンテナプロセスにSIGKILLを直ちに送信します。

$ docker stop CONTAINER
$ docker kill CONTAINER

コンテナを再起動

停止したコンテナを再起動するには、以下のコマンドを使います。

$ docker start CONTAINER

コンテナの削除

作成したコンテナは、以下で削除できます。

$ docker rm CONTAINER

まとめ

一通り、Dockerのコマンドをおさらいしましたが、これはまだ一部です。

興味があれば、公式ドキュメントを参照ください。

 

最後までお読みくださり、ありがとうございました。

 

☆☆☆ 新しいことにチャレンジしたい!仲間と一緒に成長したい!やりがいのある仕事で充実した毎日を過ごしたい!そんな熱意をお持ちの方、私たちと一緒に働きませんか?ウィズテクノロジーでは一緒に働いていただけるエンジニアを大阪・東京で募集しています。☆☆☆

WORKS

導入事例

ウィズテクノロジーは大阪を拠点に、システム開発の分野で20年の実績を持つパートナー企業です。
業務効率化やDX支援など、さまざまな課題にワンストップで対応。
経験豊富なエンジニアが、企業の成長を技術面からしっかりサポートします。

導入事例一覧を見る
導入事例一覧を見る

RECRUIT

採用情報

未来に、価値ある選択を。

All WhizzTechnologyは、期待を超える価値をともにつくり、より良い未来へ導く仲間を募集しています。