Podman(Docker互換のコンテナエンジン)で作成したDockerFileをDockerHubのDockerイメージとして保存する


概要

本書ではDocker互換のコンテナエンジンであるPodmanを使用し、DockerFileを作成します。その後、Github経由でPodmanからDockerHubにDockerイメージとして保存します。

前提条件

  • DockerHub,GitHubのアカウントを作成していること。
  • CentOS8をインストールしていること。
  • 本書ではWindows 10 Pro (Hyper-V)を使用します。
  • 本書では podman-docker パッケージをインストールします。
  • Podmanのインストールについてはこちらをご覧ください。リンク先

0.主な流れ

  1. PodmanでDockerFileを作成する。
  2. PodmanでDockerFileを検証する。
  3. GitHubにDockerFileを上げる。
  4. DockerHubにてGitHub上のDocerFileからDockerイメージを作成する。

1. GitHubの設定

0章の3,4のように、3章で作成するDockerFileをGitHubに上げる必要があります。その為、GitHub上でリポジトリ(repository)を作成してください。

2. DockerHubの設定

  1. ブラウザからDockerHubに移動し、ログインする。

  2. 上部メニューから「Repositories」をクリックする。

  3. 「Create Repository」をクリックする。

  4. 下記の内容を入力し、「Create」をクリックする。

    • リポジトリ名
    • 説明
    • Visibillity : PublicかPrivateのどちらかを選択
    • Build Setting : GitHubを「Connected」にする。(GitHubの認証画面が表示されます)
  5. リポジトリが作成されたことを確認する。

  6. 上部メニューの「Builds」をクリックする。

  7. 「Link to GitHub」をクリックする。

  8. 下記の内容をクリックし、「Save」をクリックする。

    • SOURCE REPOSITORY : リポジトリ名
    • AUTOTEST : Internal and External Pull Requests
    • Autobulid : ON
    • Build Caching : ON
  9. 「Build Activity」の画面が表示されたことを確認する。

3. DockerFileの作成

  1. 5章でGitHubに上げるために、リポジトリ専用のディレクトリを作成する。

    $ mkdir [ディレクトリ名]
    $ cd [ディレクトリ名]
    
  2. DockerFileをエディターにて作成する。例として本書ではviで作成する。

    $ vi DockerFile
    
  3. エディターにてDockerFileを作成する。例として本書では下記のようにDockerFileを作成した。

    FROM centos:8
    LABEL maintainer="yuichi1992"
    RUN dnf -y install mariadb mariadb-server
    RUN dnf -y install httpd
    RUN echo "test-page" > /var/www/html/index.html
    RUN systemctl enable mariadb
    RUN systemctl enable httpd
    
  4. 作成したDockerFileを保存する。(viではコマンドモードで:wq)

4. DockerFileの検証

  1. DockerFileをDockerImageに変換する。

    $ docker build ./ -t [名前]
    
  2. エラーが発生せずにコマンドが実行できたことを確認する。

  3. DockerFileから生成したDockerImageを確認・使用する。

    $ docker images
    $ docker run -t -i [イメージID] /bin/bash
    
    コンテナ内にてmariadb,httpdがインストールされているか確認
    $ rpm -qa | grep maria
    $ rpm -qa | grep httpd
    $ cat /var/www/html/index.html
    

5. GitHubにDockerFileを上げる

  1. 下記のコマンドを実行し、DockerFileをGitHubに上げる。

    $ git init
    $ git add .
    $ git commit -m "First Commit"
    $ git remote origin [リモートリポジトリ名]
    $ git push -f origin master
    
  2. GitHubに移動し、DockerFileが上がっていることを確認する。

6. DockerHubの確認

  1. ブラウザにてDockerHubに移動し、リポジトリのメニューから「Builds」をクリックする。

  2. 「Automated Builds」にてGitHubのDockerFileが認識されていることを確認する。その後、「Trigger」をクリックする。

  3. 「PENDING」と表示されるので待機する。

  4. 「SUCCESS」と表示されたことを確認する。

  5. 上部メニューの「Tags」をクリックする。

  6. Dockerイメージが生成されたことを確認する。

最後に

Podmanを使用しDockerHubにDockerFileを上げることで、DockerHubにDockerイメージが保存されます。これによって他端末にDockerをインストールすることで、DockerHubで保存したDockerイメージを使用することができます。保存したDockerイメージは同一の環境なので、検証用の使い捨て環境などとして利用することができます。