Dockerでコンテナ基本操作(起動から削除までの演習)

2019/12/11

前回、Windows環境にDockerをインストールしました。

今回は「Windows Power Shell」を使ってDockerコマンドでコンテナの基本操作をやってみます。

尚、Dockerとは?という部分は触れません。もし、ネットで調べてもよくわからなかったという方は、「自宅ではじめるDocker入門」という本がわかりやすくておススメです。

 

演習

CentOS7のコンテナを作成して、一通りの基本操作をやってから最後に削除します。

実行結果

 

手順

 

1.コンテナの作成&起動

Windowsにデフォルトで入っている Power Shell を開いて以下のコマンドを実行します。


# docker run [オプション] [イメージ名:タグ名]
# 以下は "centos7"という名前でコンテナを作成
$ docker run -it -d --name centos7 centos:centos7

 

docker runコマンド

コンテナの作成と同時にコンテナも起動し、そのタイミングで自動的にログインします。ログイン状態を抜けるには "contrl" を押した状態で "P、Q" を順番に押します。

コンテナを停止状態(stopした状態)で作成する場合はdocker create

 

オプション

オプション 説明
-d コンテナをバックグランドで実行します。(デタッチモード)
-i コンテナの標準入力を開いたままにします。
-t 端末を割り当てたままにします。
--name [名前] コンテナに任意の名前をつけます
-p [ホストのポート]:[コンテナのポート] ホストOSのポート番号をコンテナ内のポート番号にバインドします。(例:-p 8080:80)
-v [ホストのボリューム]:[コンテナのボリューム] ホストのボリュームをコンテナ内のボリュームにバインドします。(例:-v /var/contena1/app:/opt/app)
--rm コンテナのメインプロセス終了時にコンテナを自動的に削除します。

 

2.コンテナの一覧表示


$ docker ps

 

docker psコマンド

起動中のコンテナ一覧を表示します。
 

オプション

オプション 説明
-a(--all) 停止中のコンテナも表示します。

 

3.コンテナに入る


$ docker exec -it centos7 /bin/bash
[root@cb3304a91e51 /]# (※コンテナ内の /bin/bash のプロンプトとなる)

 

docker execコマンド

コンテナ内で新たなプロセスを実行します。

書式は docker exec [コンテナ名] [コマンド名] になります。

例えば、docker exec [コンテナ名] ls を実行するとコンテナ内で ls されます。

 

オプション

オプション 説明
-it /bin/bash などの対話コマンドを実行する際は -it オプションをつけます。

 

4.CentOSのバージョン確認

CentOS7のコンテナが動いているか、バージョンを確認してみます。


[root@cb3304a91e51 /]$ cat /etc/redhat-release

 

5.コンテナから抜ける(デタッチ)

「Ctrl + p」+「Ctrl + Q」を押します。

docker psコマンドで稼働状況を確認します。

STATUSがUPになっているのが確認できます。

 

6.再びコンテナに入る(アタッチ)

先ほどデタッチしたCentOSコンテナに再度ログインします。


$ docker attach centos7

 

docker attachコマンドとdocker execコマンドの違い

どちらも稼働中コンテナへ接続するコマンドです。違いは
 

docker attach
exitコマンドで抜けるとコンテナが停止してしまう
docker exec
exitコマンドで抜けてもコンテナは停止しない

 

7.コンテナを抜けて停止

CentOS7コンテナの中でexitコマンドを打つと、ログイン状態を抜けます。


[root@cb3304a91e51 /]$ exit

 
また、docker attachコマンドでコンテナへ接続したので、exitコマンドでコンテナも停止されます。

docker psコマンドで稼働しているコンテナを確認すると、contos7というコンテナが消えているのが確認できます。

もし、再びcentos7コンテナに接続してプロセスを実行したいなら、

1.コンテナ起動 (docker start centos7
2.コンテナに接続(docker attache centos7 もしくは docker exec -it centos7 /bin/bash

の流れになります。

 

コンテナ操作コマンド


コンテナを起動
$ docker run -d -it --name centos7 centos:7

コンテナの一覧を表示する(-a は停止中もすべて)
$ docker ps -a

コンテナを開始・停止・再起動・削除・リネーム
$ docker start centos7
$ docker stop centos7
$ docker restart centos7
$ docker rm centos7
$ docker rename centos7 centos6

 

8.コンテナの削除


$ docker rm centos7

 

docker ps -aコマンドで "centos7コンテナ" が削除されたのが確認できます。

Dockerの基本的な操作は以上になります。

 

自宅ではじめるDocker入門

Docker関連の数ある本でも、図や丁寧な解説で「わかりやすい」と評判がいい本です。コマンドを叩きながら、Dockerにおける「イメージ」「コンテナ」が理解できます。まだ、Kindle版が出てないのは惜しいですが、Docker入門としておススメの1冊です。

Amazonで詳細を見る

オススメ

 

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築

おすすめ記事

動画で学習するなら ドットインストール、Schoo、Udemyのどれがいい?

独学に限界を感じたら Laravelが学べる!おススメのプログラミングスクール

フリーランスを目指すなら フリーランスエージェントTOP3