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イメージを入手して、コンテナを起動できるかどうかをテストします。以下は、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 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実践入門」などがある。趣味はレーシングカートとビリヤード。古賀氏の最新記事が読めるブログはこちら。
Copyright © ITmedia, Inc. All Rights Reserved.