オリジナルのDockerイメージをDocker Hubに公開しよう



オリジナルのDockerイメージをDocker Hubに公開しよう

Dockerを使いはじめると、

  • 「自分専用のDockerイメージを作ってみたい」
  • 「Docker Hubに自分の Dockerイメージも公開したい」

と思い始める方もいらっしゃるでしょう。

今回は Docker コンテナを編集し、オリジナルの Dockerイメージを作成、そして Docker Hub にプッシュするところまでご紹介させて頂きます。

目次
  1. オリジナルのDockerイメージをDocker Hubに公開しよう
  2. 今回ご紹介する内容
  3. オリジナルのDockerイメージを公開する様子
  4. オリジナルのDockerイメージを作成
  5. オリジナルのDockerイメージをDocker Hubに公開
  6. まとめ

オリジナルのDockerイメージをDocker Hubに公開しよう

今回ご紹介する内容

image\

今回の目標イメージ

オリジナルのDockerイメージを作成する方法は、

  • docker commit を使う
  • DockerFileの作成&使用

の 2種類。今回は docker commit を使ったやり方をご紹介。

ベースの Dockerイメージに git を追加して、新しく Dockerイメージを作成。そして Docker Hub に公開するよう進めていきます。

【必要な開発環境】
Docker
Docker Hub のアカウント(フリープランでOK)

【ベースとなる Dockerイメージ】
httpd

【追加する機能】
git

【目標】
自分で作った Dockerイメージを Docker Hub に公開
Docker Hub に公開した自分の Dockerイメージを使ってみる

オリジナルのDockerイメージを公開する様子

下記テキストと合わせて動画、ご参照下さい。

オリジナルのDockerイメージを作成

画像クリックで拡大

まずはベースとなる Docker イメージを用意。今回は Debianベースで作られている Apache の Docker イメージ「httpd」を使用。

docker pull httpd
docker images

上記コマンドでベースの Docker イメージが用意出来たことを確認。この段階では Docker イメージをダウンロードしただけで、 Dockerコンテナは存在しません。

画像クリックで拡大

docker run --name test01 httpd

ベースの Dockerイメージの動きを確認しておきましょう。上記コマンド入力後、 localhost にアクセス。すると httpd が動いていることが確認できます。

画像クリックで拡大

docker container ls -a

Dockerイメージを起動したことで Dockerコンテナが新しく作られたことが確認できます。このコンテナに git を追加したいと思います。コンテナ内に入って作業するには、

  • Dockerコンテナの起動
  • Dockerコンテナに入る
  • apt-get install git

のステップ。まずは Dockerコンテナの起動から。

docker container start test01
docker container exec -it test01 bash
git --version

この段階で git が存在しないことが確認できます(上図参照)。 このコンテナ(test01)に git を追加します。

画像クリックで拡大

apt-get update

画像クリックで拡大

apt-get install git

git インストールの途中に「続けますか?」と聞かれますので y を入力し、リターン。このコマンドを apt-get install -y git とすると途中の「続けますか?」はスルーできます。Dockerfile などでよく -y が出ますので、 -y の意味を知っておくといいですね。

画像クリックで拡大

git --version

git が無事インストールできたら、 exit でコンテナから出ます。

次は新しく設定しなおした Dockerコンテナを元に、オリジナルの Dockerイメージを作成。

画像クリックで拡大

Dockerコンテナを元に新しく Dockerイメージを作ろうと思うと、Dockerコンテナの ID が必要に。そして以下のように docker commit すれば新しく Dockerイメージが作成できます。

docker commit -m "メッセージ" -a "作者" コンテナID リポジトリ名/任意の名称

【今回の場合】
docker commit -m "add git" -a "oshimamasara" a8cce2663f11 oshimamasara/httpd-git

この時の注意点は、新しく作成する Dockerのイメージ名。上記では httpd-git としていますが、使えない文字体もあります。

【Dockerのイメージ名に使えない文字体】

  • 大文字の英語
  • 半角以外の文字
  • +などの記号

使えない文字がある場合は、エラーで処理が実行されませんので、名前を見なおしてリトライしましょう。また /スラッシュ前のリポジトリ名(今回は oshimamasara)がないと push できないのでご注意ください。

あと Docker Hub で公開する Dockerイメージにタグ情報を入れたい場合は、ここの docker commit のコマンドでタグを入力する必要があります。

docker commit -m "add git" -a "oshimamasara" a8cce2663f11 oshimamasara/httpd-git:1.0

新しく作成する Dockerイメージの末尾に :コロン1.0 と追記することでタグ情報を入力できます。

オリジナルのDockerイメージをDocker Hubに公開

画像クリックで拡大

そして新しく作った Dockerイメージを Docker Hub にアップしようと思うと、コマンド上で Docker Hub にログインしておく必要があります。

docker login -u DockerHubユーザー名

上記コマンドを入力するとパスワードを尋ねられますので、 Docker Hubのログインパスワードを入力し、リターンキー。 後は Docker Hub に自分の Dockerイメージをプッシュすれば OK。

docker push oshimamasara/httpd-git

画像クリックで拡大

無事にプッシュコマンドが完了し、Docker Hubのページを更新すると、自分のリポジトリに新しく Dockerイメージが追加されたことが確認できます。

image

普段使っている Docker のイメージ同様、 docker pull や docker run で自分の Dockerイメージが使えそう。

画像クリックで拡大

新しく作った Dockerイメージに git が正しく追加されているか確認してみましょう。

docker run -it --name test02 oshimamasara/httpd-git bash
git --version

デフォルトの httpd にはない git が実装されていることが確認できます。念のため Apache サーバーが起動するか確認してみました。

docker run --name test03 oshimamasara/httpd-git

localhost にアクセスすると Apache サーバーが起動していることが確認できます(上図参照)。

まとめ

Docker の学習モチベーションとして、 Docker Hub へのアップロードは有効と思います。自分のレポジトリに Dockerイメージが作成されると、チョットうれしくなるもの。 またこの一連の作業をこなす中で Docker にも慣れてくると思います。

「Docker、便利そうだけどよく分からないな」「就職や転職に Docker 知っておいた方がいいと聞くけど、難しいな」と弱気になっているあなた。一度 Docker の学習環境を見直してみませんか。

現在プログラミングスクールは数多くありますかが、 Docker を学習できるところは少ないです。その数少ない Docker 学習可のスクールに CodeCampGATE があります。

プログラミング初心者でも 4ヶ月間みっちり学習することで、実践レベルのスキルを身に付けさせてくれる CodeCampGATE。 IT業界への就職・転職を検討されている方は一度 Docker の学習も含めて参考にしてみませんか。無料相談も行っていますので、詳しくは 公式ページ より確認してみてください。

関連記事

オシママサラ
この記事を書いた人
オシママサラ
\ 無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp