LoginSignup
4
1

More than 3 years have passed since last update.

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

Posted at

概要

本書では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に移動し、ログインする。
    dockerhub_001.JPG

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

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

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

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

  6. 上部メニューの「Builds」をクリックする。
    dockerhub_007 - コピー.JPG

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

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

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

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が上がっていることを確認する。
    dockerhub_010.JPG

6. DockerHubの確認

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

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

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

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

  5. 上部メニューの「Tags」をクリックする。
    dockerhub_018 - コピー.JPG

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

最後に

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

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1