第46回 Dockerのプライベートレジストリを活用する(準備編)古賀政純の「攻めのITのためのDocker塾」(3/3 ページ)

» 2017年08月10日 11時00分 公開
前のページへ 1|2|3       

Dockerエンジンの起動とバージョン確認

 Dockerデーモンを起動し、Dockerエンジンのバージョンを確認します。

dpr # systemctl daemon-reload
dpr # systemctl start docker
dpr # systemctl status docker
dpr # systemctl enable docker
dpr # docker version
...
Server:
 Version:      17.06.0-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:21:56 2017
 OS/Arch:      linux/amd64
 Experimental: false

Dockerコンテナの起動のテスト

 以上で、Dockerエンジンが稼働できたはずです。では実際にDockerイメージを入手して、コンテナを起動できるかどうかをテストします。以下は、CentOS 6.9ベースのDockerイメージを入手し、Dockerコンテナを起動した後、コンテナがCentOS 6.9ベースかどうかを確認する例です。

dpr # docker pull centos:6.9
dpr # docker run -it --rm --name c1 centos:6.9 cat /etc/redhat-release
...
CentOS release 6.9 (Final)

 CentOS 6.9ベースのDockerコンテナが起動することが確認できました。これで、Community EditionのDockerエンジンが稼働する環境が整いました。

Dockerプライベートレジストリの起動

 Dockerエンジンが稼働する環境が整いましたので、いよいよ、Dockerプライベートレジストリを起動します。Dockerプライベートレジストリは、Dockerイメージが提供されており、docker runコマンドによってDockerコンテナとして稼働させられます。以下は、Dockerプライベートレジストリの起動例です。

dpr # docker run \
-d \ ←バックグラウンドで起動
-p 5000:5000 \ ←ホストOSのポート番号とコンテナのポート番号の対応付け
-v /hostdir/registry:/var/lib/registry \ ←ホストとコンテナのディレクトリ対応付け
--restart=always \ ←コンテナの再起動を常に試みる
--name registry01 \ ←コンテナ名
registry:latest ←プライベートレジストリのDockerイメージ

 完了したら、DockerプライベートレジストリのDockerイメージがダウンロードされて、Dockerコンテナとして起動しているかを確認します。

dpr # docker images
REPOSITORY          TAG        IMAGE ID            CREATED             SIZE
registry            latest     c2a449c9f834        2 weeks ago         33.2MB
...
dpr # docker ps -a
CONTAINER ID   IMAGE              COMMAND                  PORTS                    NAMES
4fccac21b772   registry:latest    "/entrypoint.sh /e..."   0.0.0.0:5000->5000/tcp   registry01

 Dockerプライベートレジストリは、Dockerエンジンが稼働するホストOSの5000番ポートとコンテナ内の5000番ポートを使用します。そのため、docker run実行時に「-p 5000:5000」を指定しています。また、Dockerプライベートレジストリコンテナ内の /var/lib/registry ディレクトリを、ホストOSの /hostdir/registry ディレクトリに対応付けます。これにより、Dockerプライベートレジストリコンテナ内に保管されるレジストリ情報(Dockerイメージなどの情報)は、ホストOS側の /hostdir/registry ディレクトリに保存されるため、Dockerプライベートレジストリコンテナが削除されても、次に起動する際には、レジストリ情報をそのまま引き継いで利用することができます。

 指定するDockerイメージは、「registry:latest」にします。上記の場合、Dockerイメージ「registry:latest」から、Dockerプライベートレジストリのコンテナ「registry01」を起動しています。

 以上で、Dockerプライベートレジストリを稼働させることができました。ぜひ独自のプライベートレジストリを作る際の参考にしてください。次回は実際にプライベートレジストリにDockerイメージを登録したり、プライベートレジストリからDockerイメージの入手したりする方法を解説します。

古賀政純(こがまさずみ)

日本ヒューレット・パッカード オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバのSEおよびスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国ヒューレット・パッカードからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本ヒューレット・パッカードにて、Hadoop、Spark、Docker、Linux、FreeBSDなどのサーバ基盤のプリセールスSE、文書執筆を担当。日本ヒューレット・パッカードが認定するオープンソース・Linux テクノロジーエバンジェリストとして、メディアでの連載記事執筆、講演活動なども行っている。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「Mesos実践ガイド」「OpenStack 実践ガイド」「Docker 実践ガイド」「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード。古賀氏の最新記事が読めるブログはこちら


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.