第42回 Dockerイメージを「Quay.io」で管理する(準備編)古賀政純の「攻めのITのためのDocker塾」(3/3 ページ)

» 2017年06月05日 11時30分 公開
前のページへ 1|2|3       

実際にリポジトリを使ってみる

ホステッドレジストリQuay.ioに作成したリポジトリを使う

 ホステッドレジストリQuay.ioにDockerイメージのリポジトリを作成しましたので、リポジトリ「testrepo01」を手元のマシンから使ってみましょう。今回、手元のマシンは、CentOS 7.3.1611(本連載では、CentOS 7.3と表記します)の環境とします。当然のことながら、手元のマシンには、Dockerエンジンが稼働し、インターネットにアクセスできる必要があります。手元のマシンのコマンドプロンプトは、「local #」で表すとします。まず、手元のDockerエンジンが稼働するホストOSに、CentOS 6.8のOSテンプレートをDocker Hubから入手し、コンテナとして起動します。コンテナ名は、「c0001」としました。

local # docker pull centos:6.8
local # docker run -itd --name c0001 -h c0001 centos:6.8 /bin/bash
local #

 コンテナで作業しますので、コンテナ上のbashを起動します。

local # docker exec -it c0001 /bin/bash
[root@c0001 /]#

 bashプロンプトが「[root@c0001 /]#」になり、コンテナc0001上のbashが起動できました。コンテナ「c0001」上で、なにかRPMパッケージをインストールしてみます。プロキシサーバ経由でインターネットにアクセスする場合は、/etc/yum.confファイルにプロキシサーバの設定を追記します。ここでは、例として、iprouteパッケージと、Webサーバのhttpdパッケージをコンテナ「c0001」上にインストールしてみます。

[root@c0001 /]# echo "proxy=http://proxy.your.site.com:8080" >> /etc/yum.conf
[root@c0001 /]# yum install -y iproute httpd
[root@c0001 /]# exit

まずは、Dockerイメージをローカルで保存

 再び、ホストOSのコマンドラインに戻り、コンテナ「c0001」をDockerイメージとして保存するのですが、このときに、保存する名前に注意します。今回、Quay.ioに作成したユーザーアカウント「masazumi_koga」のパブリックリポジトリ「testrepo01」にDockerイメージを保存しますので、手元のマシンで保存するDockerイメージの名前を以下のようにします。

local # docker commit c0001 quay.io/masazumi_koga/testrepo01:c68websvr01

 ローカルに保存したDockerイメージを確認します。

local # docker images
REPOSITORY                         TAG           IMAGE ID       ...  SIZE
quay.io/masazumi_koga/testrepo01   c68websvr01   7182c728b90d   ...  286 MB

 まだ、この時点では、ローカルにDockerイメージを保存しただけですので、ホステッドレジストリのQuay.ioにアップロードされていません。

Quay.ioにDockerイメージをアップロード

 では、作成したDockerイメージをホステッドレジストリのQuay.ioにアップロードしてみましょう。ホステッドレジストリへDockerイメージをアップロードには、まずそのホステッドレジストリへログインする必要があります。ホステッドレジストリへのログインは、docker loginを使います。docker loginの後に、ログイン先のホステッドレジストリを指定します。

local # docker login quay.io
Username: masazumi_koga
Password: xxxxxxxxxxxxx
Login Succeeded

 「Login Succeeded」と表示されると、ホステッドレジストリへのログインが成功しましたので、Dockerイメージをアップロードできる準備が整いました。では、いよいよQuay.ioにDockerイメージをアップロードしてみます。Dockerイメージのアップロードには、docker pushを用います。docker pushには、先ほど作成したローカルに保存済みのDockerイメージ名を指定します。

local # docker push quay.io/masazumi_koga/testrepo01:c68websvr01
The push refers to a repository [quay.io/masazumi_koga/testrepo01]
4e427f4313e4: Pushing [============>                              ] 22.76 MB/91.72 MB
b1b065555b8a: Pushing [===>                                       ] 15.16 MB/194.5 MB

 DockerイメージがアップロードされているかをQuay.ioの管理画面で確認してみましょう。

Dockerイメージの「quay.io/masazumi_koga/testrepo01:c68websvr01」がQuay.ioに作成したリポジトリに格納されているかを確認

 以上でDockerイメージがホステッドレジストリにアップロードできていることが確認できました。次回は、Quay.ioにアップロードした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.

注目のテーマ