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
コンテナの作成と同時にコンテナも起動し、そのタイミングで自動的にログインします。ログイン状態を抜けるには "contrl" を押した状態で "P、Q" を順番に押します。
docker create
オプション
オプション | 説明 |
---|---|
-d | コンテナをバックグランドで実行します。(デタッチモード) |
-i | コンテナの標準入力を開いたままにします。 |
-t | 端末を割り当てたままにします。 |
--name [名前] | コンテナに任意の名前をつけます |
-p [ホストのポート]:[コンテナのポート] | ホストOSのポート番号をコンテナ内のポート番号にバインドします。(例:-p 8080:80) |
-v [ホストのボリューム]:[コンテナのボリューム] | ホストのボリュームをコンテナ内のボリュームにバインドします。(例:-v /var/contena1/app:/opt/app) |
--rm | コンテナのメインプロセス終了時にコンテナを自動的に削除します。 |
2.コンテナの一覧表示
$ docker ps
起動中のコンテナ一覧を表示します。
オプション
オプション | 説明 |
---|---|
-a(--all) | 停止中のコンテナも表示します。 |
3.コンテナに入る
$ docker exec -it centos7 /bin/bash
[root@cb3304a91e51 /]# (※コンテナ内の /bin/bash のプロンプトとなる)
コンテナ内で新たなプロセスを実行します。
書式は 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
- exitコマンドで抜けるとコンテナが停止してしまう
- docker exec
- exitコマンドで抜けてもコンテナは停止しない
7.コンテナを抜けて停止
CentOS7コンテナの中でexitコマンドを打つと、ログイン状態を抜けます。
[root@cb3304a91e51 /]$ exit
また、docker attach
コマンドでコンテナへ接続したので、exit
コマンドでコンテナも停止されます。
docker ps
コマンドで稼働しているコンテナを確認すると、contos7というコンテナが消えているのが確認できます。
もし、再びcentos7コンテナに接続してプロセスを実行したいなら、
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冊です。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。