はじめに
「環境構築のために Docker をインストールしたけどどう使えば良いのかわからない」といった方のために、Docker の使い方を説明します。
前提とする PC 環境
Docker がインストール済みの Ubuntu 20.04
できるようになること
ターミナル上でのコマンドによる Docker イメージとコンテナの利用
今回行うこと
- イメージの操作
- 取得
- 一覧表示
- 削除
- コンテナの操作
- 作成
- ログアウト
- 一覧表示
- 停止
- 起動
- ログイン
- 削除
- Build Cache の削除
イメージの操作
以下の作業を行います。
- 取得
- 一覧表示
- 削除
取得
例えば、Ubuntu 20.04 のイメージを取得します。
$ docker pull ubuntu20.04
一覧表示
取得済みのイメージをすべて表示します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 5a81c4b8502e 3 months ago 77.8MB
削除
取得済みのイメージを削除します。ただし、削除予定のイメージが紐付けられているコンテナがある場合、それを先に削除する必要があります。今回は既に削除済みであることとします。
- 1つ目の方法
$ docker image rm ubuntu:20.04
- 2つ目の方法
$ docker rmi ubuntu:20.04
コンテナの操作
以下の作業を行います。
- 作成
- ログアウト
- 一覧表示
- 停止
- 起動
- ログイン
- 削除
作成
取得済みのイメージからコンテナを作成します。作成と同時にコンテナにログインされます。
$ docker run -it ubuntu:20.04
root@cec011deb7bd:/#
ログアウト
ログイン中のコンテナをログアウトします。ショートカットキー Ctrl + P
+ Ctrl + Q
を押してください。
一覧表示
コンテナの情報を一覧表示します。どのイメージから作成されたか、現在の状態、名前などを確認できます。
- すべてのコンテナを表示する場合
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cec011deb7bd ubuntu:20.04 "/bin/bash" 8 weeks ago Exited (0) 3 hours ago angry_rhodes
- 起動中のコンテナのみ表示する場合
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cec011deb7bd ubuntu:20.04 "/bin/bash" 8 weeks ago Up 3 seconds angry_rhodes
停止
- ログイン中のコンテナを停止する場合
- 1つ目の方法
ショートカットキーCtrl
+D
- 2つ目の方法
root@cec011deb7bd:/# exit
- 1つ目の方法
- ログアウト中のコンテナを停止
- 1つ目の方法
$ docker container stop angry_rhodes
- 2つ目の方法
$ docker stop angry_rhodes
- 1つ目の方法
起動
- 1つ目の方法
$ docker container start angry_rhodes
- 2つ目の方法
$ docker start angry_rhodes
ログイン
コンテナのシェルスクリプトを指定してログインする。例えば bash
ファイルとする。
$ docker exec -it angry_rhodes bash
root@cec011deb7bd:/#
削除
- 1つ目の方法
$ docker container rm angry_rhodes
- 2つ目の方法
$ docker rm angry_rhodes
Build Cache の削除
Docker イメージの取得時に生成される Build Cache を削除します。まず、Docker が使っているストレージ容量を確認します。
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 8 5 13.46GB 10.12GB (75%)
Containers 7 1 7.673GB 5.008GB (65%)
Local Volumes 10 0 0B 0B
Build Cache 357 0 33.39GB 33.39GB
次に Build Cache を削除します。
$ docker builder prune
おわりに
Docker イメージやコンテナの基本的な利用方法を紹介しました。大体の流れがわかった後は、VSCode の拡張機能を使ってコンテナを起動するのが楽なのでおすすめです。