dockerhubについて
dockerhubとは、Dockerイメージをクラウド上で管理・共有できるWebサービスです。(githubのDocker版と考えると良いでしょう。)
公開されているイメージの利用
dockerhubで公開されているイメージは、自由にpullして利用することができますが、出どころが不明なイメージを利用するのはリスクを伴います。
検索ページにアクセスしたら、左側の「Official Images」というチェックボックスにチェックを入れることで、Dockerのオフィシャルイメージのみを表示させることができます。
通常は、オフィシャルイメージを利用してイメージを構築するのが望ましいでしょう。
- mysql
- postgres
- ubuntu
- centos
- php
- wordpress
など、様々な公式イメージを利用することが可能です。
自作イメージのアップロード
自作イメージをアップロードすることも可能です。 今回は、ubuntuイメージにvimを追加でインストールしたものをアップロードしてみましょう。
dockerhubへのサインアップ(ブラウザ)
まず、dockerhubの公式ページからサインアップを行います。
サインアップを完了すると、登録メールアドレスに認証メールが届きますので、認証を済ませておきます。
ubuntuコンテナの作成
イメージの作成方法は色々ありますが、今回はコンテナの状態をカスタマイズして、その状態でイメージに変換する方法で行います。
まずは、カスタマイズ元となるubuntuコンテナを作成し、ubuntu_vimと名付けておきましょう。
docker container create -it --name ubuntu_vim ubuntu:18.04
ubuntuコンテナの起動
続いて、container start コマンドでコンテナを起動しておきます。
docker container start ubuntu_vim
ubuntuコンテナへのログイン
さらに、container exec コマンドでコンテナのターミナルへログインします。
docker container exec -it ubuntu_vim bash
ubuntuコンテナにvimをインストール
では、このコンテナ内にvimをインストールしましょう。
まず、現時点で vim コマンドを実行してみます。
vim
すると、vimがまだインストールされていないため、以下のエラーメッセージが出力されます。
bash: vim: command not found
では、vimのインストールを行いましょう。 まず、インストール用のapt-getコマンドをupdateしておきます。(リポジトリの更新)
apt-get update
続いて、vimのインストールを行います。-yオプションは、インストール確認をスキップするオプションです。
apt-get install -y vim
インストールが完了したら、再度vimコマンドを実行し、vimが立ち上がることを確認しておきましょう。
vim
vimは :q コマンドで終了できます。
vimの起動を確認できたら、exitでコンテナからログアウトしておきましょう。
exit
ubuntuコンテナからイメージを作成
では、作成したvimインストール済みのubuntuコンテナを元にイメージを作成しましょう。
まず、container stop コマンドで、コンテナを停止しておきます。
docker container stop ubuntu_vim
続いて、container commitコマンドで作成したコンテナをイメージ化します。
docker container commit [コンテナ名] [dockerhubのユーザー名]/[任意のイメージ名]:[任意のタグ名]
container commit コマンドは上記の文法になっているので、今回は、
docker container commit ubuntu_vim [ユーザ名]/ubuntu_vim:1.0
として、イメージ化しておきましょう。(ユーザ名のところには、dockerhubで設定したユーザー名を入力します。)
イメージのテスト
では、作成したイメージを利用してみましょう。
docker container run --name ubuntu_vim_sample -it --rm [ユーザ名]/ubuntu_vim:1.0
上記のコマンドで、作成したイメージを元にコンテナを作成できます。
vim
vimコマンドを実行して、すでにvimがインストール済みであることを確認しておきましょう。確認が完了したら、exitコマンドでログアウトしておきましょう。
ターミナルからdockerhubへログインする
では、pushを行うために、dockerhubにターミナルからログインしましょう。
ターミナルからdockerにログインするためには docker login コマンドを利用します。
docker login -u [ユーザー名]
パスワードを聞かれるので入力してEnterキーを押します。
Login Succeeded
と出力されればOKです。
(なお、loginコマンドではlogin先を指定することで、別のリポジトリにログインすることも可能です。)
イメージをpushする
では、作成したイメージをdockerhubにpush(アップロード)しましょう!
docker push [ユーザ名]/ubuntu_vim:1.0
上記のコマンドを実行してしばらくするとdockerhubへのpushが完了します。
再度 dockerhubにアクセスすると
今回作成したイメージがリポジトリとしてdockerhubに登録されたことが確認できます。