Dockerのコンテナイメージ管理について

イメージの表示・削除

Dockerでは、レポジトリからイメージを取得し、コンテナを作成します。 レポジトリは"DockerHub"と呼ばれる公開レポジトリか、自分達や他の人が作成したレポジトリを登録して使うことができます。

イメージの確認

現在ローカル環境に存在するイメージはimagesコマンドで確認できます。 初期状態では以下のようにカラです。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

pullコマンドなどでイメージを取得すると以下のように表示されます。

# docker images
docker.io/centos    7                   eeb3a076a0be        3 days ago          196.7 MB
docker.io/centos    6                   6e93f19d1d37        4 weeks ago         228.9 MB

中間イメージを含む全てのイメージを表示する場合は、オプション-aを追加します。

# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
my                  mysql               8bc5f1b22b61        4 hours ago         869.8 MB
<none>              <none>              9f33a7d38eb3        4 hours ago         869.8 MB
<none>              <none>              c3018c94d23d        4 hours ago         869.8 MB
<none>              <none>              57c415290d83        4 hours ago         869.8 MB

イメージの削除

イメージを削除する場合は、rmiコマンドで、削除するイメージのID、又は[レポジトリ:タグ]を指定します。

# docker rmi 8bc5f1b22b61
または
# docker rmi my:mysql

イメージの検索、取得

searchコマンドで必要なイメージを検索します。 CentOSを検索する場合、以下を実行します。

# docker search centos
レポジトリを手動で登録していない場合は、Docker Hubと呼ばれる公開レジストリから検索結果を取得して、以下のような結果を表示します。
INDEX       NAME                                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/centos                          The official build of CentOS.                   2048      [OK]
docker.io   docker.io/jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8...   18                   [OK]
docker.io   docker.io/jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   14                   [OK]
docker.io   docker.io/million12/centos-supervisor     Base CentOS-7 with supervisord launcher, h...   10                   [OK]
docker.io   docker.io/blalor/centos                   Bare-bones base CentOS 6.5 image                8                    [OK]
docker.io   docker.io/nimmis/java-centos              This is docker images of CentOS 7 with dif...   8                    [OK]
docker.io   docker.io/torusware/speedus-centos        Always updated official CentOS docker imag...   7                    [OK]
docker.io   docker.io/centos/mariadb55-centos7                                                        3                    [OK]
docker.io   docker.io/nathonfowlie/centos-jre         Latest CentOS image with the JRE pre-insta...   3                    [OK]
docker.io   docker.io/nickistre/centos-lamp           LAMP on centos setup                            3                    [OK]
docker.io   docker.io/consol/sakuli-centos-xfce       Sakuli end-2-end testing and monitoring co...   2                    [OK]
docker.io   docker.io/darksheer/centos                Base Centos Image -- Updated hourly             1                    [OK]
docker.io   docker.io/layerworx/centos                CentOS container with etcd, etcdctl, confd...   1                    [OK]
docker.io   docker.io/lighthopper/orientdb-centos     A Dockerfile for creating an OrientDB imag...   1                    [OK]
docker.io   docker.io/pacur/centos-6                  Pacur CentOS 6                                  1                    [OK]
docker.io   docker.io/pacur/centos-7                  Pacur CentOS 7                                  1                    [OK]
docker.io   docker.io/softvisio/centos                Centos                                          1                    [OK]
docker.io   docker.io/timhughes/centos                Centos with systemd installed and running       1                    [OK]
docker.io   docker.io/yajo/centos-epel                CentOS with EPEL and fully updated              1                    [OK]
docker.io   docker.io/blacklabelops/centos            CentOS Base Image! Built and Updates Daily!     0                    [OK]
docker.io   docker.io/grayzone/centos                 auto build for centos.                          0                    [OK]
docker.io   docker.io/januswel/centos                 yum update-ed CentOS image                      0                    [OK]
docker.io   docker.io/jsmigel/centos-epel             Docker base image of CentOS w/ EPEL installed   0                    [OK]
docker.io   docker.io/lighthopper/openjdk-centos      A Dockerfile for creating an OpenJDK image...   0                    [OK]
docker.io   docker.io/ustclug/centos                   USTC centos                                    0                    [OK]

CentOSの場合は、検索結果の1番目に表示されるdocker.io/centosというオフィシャルビルドがありますので、それを使用します。

CentOS 7のイメージ取得

CentOS 7 のオフィシャルビルドイメージを取得する場合は、以下を実行します。

# docker pull centos:7
すると、以下のようなります。
Trying to pull repository docker.io/library/centos ... 7: Pulling from library/centos

47d44cb6f252: Pull complete
6fdebd7b0eb5: Pull complete
a63aae4d216f: Pull complete
bb3d629a7cbc: Pull complete
Digest: sha256:3cdc0670fe9130ab3741b126cfac6d7720492dd2c1c8ae033dcd77d32855bab2
Status: Downloaded newer image for docker.io/centos:7

CentOS 6のイメージ取得

CentOS 6 のオフィシャルビルドイメージを取得する場合は、以下のようになります。

# docker pull centos:6
Trying to pull repository docker.io/library/centos ... 6: Pulling from library/centos

85c0cc8455d6: Pull complete
362ef9f9960d: Pull complete
6e93f19d1d37: Pull complete
47d44cb6f252: Already exists
Digest: sha256:511c0da6f307b782380fe86deccf10bca936f5cfb44c6056266baf8617f8074e
Status: Downloaded newer image for docker.io/centos:6

Debian最新版のイメージ取得

Debianの公式イメージについてはDcokerhub・debianのページを確認します。

最新版のイメージは、以下で取得できます。

docker pull debian
実行すると、以下のようなります。
# docker pull debian
Using default tag: latest
latest: Pulling from library/debian
7e2b2a5af8f6: Pull complete 
Digest: sha256:7790bb087ef265cd56265767a8b689d52c7bc73b30b3cbb37525a9ea66fa9740
Status: Downloaded newer image for debian:latest
docker.io/library/debian:latest

取得できたイメージを確認すると、以下のようになっていました。(2020年4月19日)

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              latest              378ca4b1d2fe        2 days ago          114MB

Debian 9のイメージ取得

過去のバージョンを取得する場合、 Dcokerhub・debianを開き、Description の行に、Tagsがあるので、そこをクリックします。 すると、イメージのタグ一覧が表示されるので、[Filter Tags]に目的バージョンのコードネームを入力します。 バージョン9の場合は、”stretch" を入力します。

dockerhub_tags_strecth

最新版のDebian 9 (stretch)は、以下になります。

docker pull debian:stretch

スリム版(最小?)の取得では以下になります。

docker pull debian:stretch-slim

実行すると、以下のようなります。

# docker pull debian:stretch
stretch: Pulling from library/debian
7568c21980bd: Pull complete 
Digest: sha256:d844caef45253dab4cb7543b5781f529c1c3f140fcf9cd6172e1d6cb616a51c3
Status: Downloaded newer image for debian:stretch
docker.io/library/debian:stretch

# docker pull debian:stretch-slim
stretch-slim: Pulling from library/debian
5e35bd43cf78: Pull complete 
Digest: sha256:268da2ed8185a2f00b04f85546364d9635f2db88024ace3e4a9d2721b8074603
Status: Downloaded newer image for debian:stretch-slim
docker.io/library/debian:stretch-slim

取得できたイメージを確認すると、以下のようになっていました。(2020年4月19日)

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              stretch-slim        054366b4bf12        2 days ago          55.3MB
debian              stretch             ef74351b551c        2 days ago          101MB