memorycraftです。
前回の記事で、Docker Indexというパブリックレジストリについて書きましたが、プライベートなレジストリを作ることも出来ます。それによって社外に出したくない資産などを管理することが出来ます。
Docker Indexには、プライベートレジストリ用のリポジトリが提供されていて、それをpullしてコンテナとしてプライベートレジストリとして使うことが出来るようになっています。
それでは、早速試してみたいと思います。
localhostでも構いませんが、今回はレジストリ専用のサーバーを用意してみます。
最初の記事のようにレジストリサーバー上で、Dockerをインストールしておきます。
レジストリのインストールと起動
そして、Docker Indexのregistoryというリポジトリからpullしてきいます。
# docker pull registry
あとはこれを立ち上げるだけです。レジストリの内部ポートは5000番が使用されます。今回は外部ポートも5000番で指定します。
# docker run -d -p 5000:5000 registry
commit
そしていままでのコンテナサーバー側で、コンテナをコミットしますが、指定の仕方が異なります。
docker commit :/
のようにします。
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b033c1821a7 centos:6.4 /bin/bash 38 minutes ago Exit 0
# docker commit 7b033c1821a7 176.34.16.242:5000/memorycraft
a2a360e08ee87d8fd3c98f08701ce0e4d681164e50432ff032890108eded996c
すると以下のようにタグ付けされたイメージが保存されます。
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
176.34.16.242:5000/memorycraft latest a2a360e08ee8 12 seconds ago 360.4 MB
push
そしてこれをpushしてみます。pushもコミットと同様の指定の仕方になります。
# docker push 176.34.16.242:5000/memorycraft
The push refers to a repository [176.34.16.242:5000/memorycraft] (len: 1)
Sending image list
Pushing repository 176.34.16.242:5000/memorycraft (1 tags)
539c0211cd76: Image successfully pushed
a2a360e08ee8: Image successfully pushed
Pushing tags for rev [a2a360e08ee8] on {http://176.34.16.242:5000/v1/repositories/memorycraft/tags/latest}
うまく自前のレジストリにむけてpushされたようです。
確認
次に、ローカルのイメージを削除してみます。
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
176.34.16.242:5000/memorycraft latest a2a360e08ee8 3 minutes ago 360.4 MB
# docker rmi a2a360e08ee8
Untagged: a2a360e08ee87d8fd3c98f08701ce0e4d681164e50432ff032890108eded996c
Deleted: a2a360e08ee87d8fd3c98f08701ce0e4d681164e50432ff032890108eded996c
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
改めて、自前のレジストリから起動してみます。
# docker run -t -i 176.34.16.242:5000/memorycraft /bin/bash
Unable to find image '176.34.16.242:5000/memorycraft' (tag: latest) locally
Pulling repository 176.34.16.242:5000/memorycraft
539c0211cd76: Download complete
a2a360e08ee8: Download complete
bash-4.1#
bash-4.1#
おお!無事起動しました。
このように、自前のレジストリを用意すると、公開したくないコンテナイメージを社内やシステム内に限定して共有することができます。
以上です。
こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら