この投稿では、ローカルの docker システムで docker イメージをビルドして docker ハブ リポジトリにプッシュする方法について説明します。この記事では、Docker ハブのパブリック リポジトリから CentOS イメージを取得します。後で、このイメージを使用してコンテナーを実行し、新しいファイルをコンテナーに追加します。この新しいコンテナーは、新しい Docker イメージとして Docker ハブにプッシュされます。
Docker イメージのビルド
1. Docker Hub から CentOS イメージの最新バージョンを取得します。
# docker pull centos Using default tag: latest latest: Pulling from library/centos Digest: sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a Status: Image is up to date for centos:latest
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest d123f4e55e12 2 weeks ago 197MB
2. CentOS イメージがダウンロードされたら、このイメージに基づいて "centos_test" という名前の Docker コンテナーを実行します。
# docker run -it --name="centos_test" centos:latest /bin/bash [root@e121d03b20dc /]#
3. コンテナ「test_dir」に新しいディレクトリを作成し、その中に「test_file」というファイルを作成します。また、test_file にランダムなテキストを追加します。
[root@e121d03b20dc /]# mkdir test_dir [root@e121d03b20dc /]# cd test_dir [root@e121d03b20dc test_dir]# echo "This is a sample text" > test_file [root@e121d03b20dc test_dir]# cat test_file This is a sample text [root@e121d03b20dc test_dir]# ls -lrt total 4 -rw-r--r--. 1 root root 22 Nov 19 16:12 test_file
4. 次のステップは、新しく作成された docker コンテナーを使用して docker commit コマンドで新しいイメージをビルドすることです。 「docker commit」コマンドは、docker コンテナー自体からではなく、docker ホストから実行されます。
# docker commit -m="This a test image" centos_test geeklab/test_repo sha256:8a34a37712626012e995e3b02e2179bd38fb646cfc9ceaa30b15a4774d198f67
ここで、
-m="これはテスト画像です" :コミット メッセージです。
centos_test :イメージを作成するコンテナの名前。
geeklab/test_repo :イメージをプッシュする Docker Hub リポジトリの名前。これは、作成された新しいイメージに割り当てられるタグです。
5. 上記のコマンドを実行すると、システムでローカルに使用可能な Docker イメージのリストに新しいイメージ「centos_image」が表示されます。
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE geeklab/test_repo latest 8a34a3771262 About a minute ago 197MB centos latest d123f4e55e12 2 weeks ago 197MB
Docker イメージを Docker ハブ リポジトリにプッシュする
1. 次のステップは、イメージをプッシュする Docker ハブ リポジトリにログインすることです。
# 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: geeklab Password: Login Succeeded
2. これで、イメージを Docker ハブ リポジトリにプッシュできます。
# docker push geeklab/test_repo The push refers to a repository [docker.io/geeklab/test_repo] 3dbbbdcf3ef9: Pushed cf516324493c: Pushed latest: digest: sha256:c542e22fe3f29f809226d72b6c6d8efd0bec46c2924d66ad8fbb5612972740fe size: 736
3. 次に、Docker Hub にログインし、リポジトリでイメージを確認します。