dockerでイメージをリポジトリに保存する
はじめに
くーばねてすをやっつけるためにこれまでにLinuxさんとAWSさんと仲良くさせていただいたが、新たなステージに上がるためについにdockerさんに会いに行くことにした。dockerさんと仲良くなることでコンテナシステムの仕組みの理解とくーばねてすを倒すための調査をする。
概要
■コンテナをローカルリポジトリに保存する(イメージを作成)
■イメージをリモートリポジトリに保存
■docker Hubリポジトリに保存
をまとめた!(^^)
■コンテナの変更をローカルリポジトリに保存する(イメージを作成)
コンテナに色々インストールしたりしてこの設定のコンテナをコピーできるようにしたいな~と
思ったら、変更したコンテナの設定内容をイメージとして作成するためにローカルリポジトリに保存する。
$ docker commit オプション コンテナID(名前) リポジトリ名:タグ
やってみる(^^)
$ docker run centos:7 bash
[root@f343b1eae2b3 /]#yum update -y
略
[root@f343b1eae2b3 /]#yum install -y git
略
[root@f343b1eae2b3 /]#yum install -y mariadb
略
Comlete!
[root@f343b1eae2b3 /]#exit
exit
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f343b1eae2b3 centos:7 "bash" 27 minutes ago Exited (0) 7 seconds ago compassionate_wright
$ docker commit f343b1eae2b3 centos:7-git-mariadb
sha256:f485af9aeb0c90cfe3c641fa5778395a3ed32a13deee214ae03d1330cc79bb91
※イメージが作成されたか確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7-git-mariadb f485af9aeb0c About a minute ago 478MB
centos 7 8652b9f0cb4c 2 months ago 204MB
■イメージをリモートリポジトリ(Docker Hub)に保存
ローカルリポジトリに保存したイメージをリモートリポジトリとしてdocker hubに保存する。
リモートリポジトリのサービスとしてはdocker hubのほかにIBM社やGoogle社が提供している。
今回はdocker hubのリモートリポジトリを使用する。
①docker hubでIDを取得する
②ターミナルでdocker hubにログイン
③ローカルのイメージにリモートリポジトリでのリポジトリ名とタグを設定する。
④イメージをリモートリポジトリにアップロードする。
⑤WEBブラウザからイメージがアップロードできてるか確認。
①docker hubでIDを取得する
WEBブラウザでdocker HubでIDを取得する。
メールが届いてるのを確認してトップページへ。
利用できるようになる。
②ターミナルでdocker hubにログイン
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: ユーザー名入力
Password: パスワード入力
Login Succeeded
③ローカルのイメージにリモートリポジトリでのリポジトリ名とタグを設定する。
一般ユーザーで登録した場合はリポジトリ名がそのままユーザー名になる。ローカルイメージにリポジトリでのリポジトリ名とタグを設定する。
$ docker tag (ローカルの)リポジトリ:タグ ユーザー名/(リモートの)リポジトリ:タグ
(ローカルの)リポジトリ:タグはコンテナIDで省略することができる。
やってみる
$ docker images ※リポジトリ名、タグ、IDを確認
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7-git-mariadb f485af9aeb0c About a minute ago 478MB
$ docker tag f485af9aeb0c ユーザー名/centos:7-git-mariadb
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7-git-mariadb f485af9aeb0c About an hour ago 478MB
ユーザー名/centos 7-git-mariadb f485af9aeb0c About an hour ago 478MB
タグつけされたイメージの確認ができた。
④イメージをリモートリポジトリにアップロードする
$ docker push ユーザー名/リポジトリ名/タグ
やってみる('_')
$ docker push ユーザー名/centos:7-git-mariadb
The push refers to repository [docker.io/ユーザー名/centos]
ff23c6fd8529: Pushed 174f56854903: Mounted from library/centos 7-git-mariadb: digest: sha256:9392836360fdea89e89c544b64452195d8f70450179e77a84396a300a2cd198f size: 741
アップロードできた。
⑤WEBブラウザからイメージがアップロードできてるか確認。
トップページに入り、リポジトリを確認。
まとめ
docker Hubにアップロードできた!(>_<)
Discussion