🐳

Dockerでコンテナの作成からイメージの削除までしてみた

2021/10/03に公開約2,900字

Apache を題材にしてコンテナの作成、起動、停止、確認、削除をしてみました。
最後にdockerイメージの削除もしました。
動作確認するにはDocker Engineを起動しておく必要があります。

起動しているコンテナの確認

ps コマンドで起動しているコンテナの一覧を表示できます。
オプションとして"a"をつけるとすべてのコンテナを確認できます。

docker ps -a

# 実行結果(コンテナが作成されてなければ下記のようになる)
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

コンテナの作成、コンテナの起動

run コマンドで Apache のイメージ(httpd)から「apa000ex1」という名前のコンテナを作成・起動します。
初回はイメージをダウンロードするため時間🕑がかかります。
pオプションでホストのポート番号(下記の例では8080)とコンテナのポート番号(下記の例では80)をつなげます。
ホストのポート番号は他とかぶらなければ任意の数字でOKです👍

docker run --name apa000ex1 -p 8080:80 -d httpd

実行できたらコンテナを確認してみましょう。(コンテナ ID はランダムな文字列です。)
STATUS が Up だと起動しています。

docker ps -a

# 実行結果
CONTAINER ID   IMAGE     COMMAND              CREATED         STATUS         PORTS                  NAMES
7f142d6453dc   httpd     "httpd-foreground"   6 seconds ago   Up 4 seconds   0.0.0.0:8080->80/tcp   apa000ex1

ポートの設定をしたので"http://localhost:8080/"に接続すると画像のような画面が表示されます。
"http://localhost:8080/"の画面

コンテナの停止

stop または kill コマンドでコンテナを停止できます。
kill コマンドは強制停止させます。

docker stop apa000ex1

実際に停止しているかどうかはpsコマンドで確認可能です。
STATUSが"Exited"だと停止しています。

docker ps -a
# 実行結果 STATUSが"Exited"であることから停止していることがわかる
CONTAINER ID   IMAGE     COMMAND              CREATED       STATUS                   PORTS     NAMES
7f142d6453dc   httpd     "httpd-foreground"   2 hours ago   Exited (0) 2 hours ago             apa000ex1

もちろん、"http://localhost:8080/"に接続してもアクセスできません。

コンテナ停止後の"http://localhost:8080/"の画面

コンテナの再起動

停止したコンテナを再び実行するには start コマンドを使います。startコマンドではポート番号の指定は不要です。

docker start container apa000ex1

コンテナの削除

rm コマンドでコンテナの削除ができます。削除する前にはstopコマンドでコンテナの停止を事前にしておく必要があります。

docker rm apa000ex1

削除されているか確認してみます。

docker ps -a
# 実行結果
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

コンテナが表示されていないことから削除されていることを確認できました。

イメージの削除

コンテナを削除してもイメージは残り続けます。
イメージが残るとストレージを圧迫するので、不要なイメージは"docker rmi"で削除してしまいましょう。

イメージの確認

コンテナを削除してもイメージが残っているか確認します。

docker images

# 実行結果
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        latest    479801e882f4   4 days ago   131MB

イメージの削除

rmiコマンドでイメージを削除できます。
コンテナのときと同様イメージIDを指定して、削除できます。
イメージIDで削除する場合は、docker imagesで確認したイメージIDを指定します。

docker rmi httpd

# こちらでも削除できる
docker rmi 479801e882f4

イメージが削除されているか確認

何も表示されていなければ削除できています。

docker images

# 実行結果
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

参考

kill コマンドについて
仕組みと使い方がわかる Docker&Kubernetes のきほんのきほん

GitHubで編集を提案

Discussion

ログインするとコメントできます