独自の Docker イメージを作成して Dockerhub にアップロードする方法

独自の Docker イメージを作成して Dockerhub にアップロードする方法

1. まず、自分のdockerhubアカウントを登録します。登録アドレス: https://hub.docker.com

2. Linuxサーバーのアカウントにログインします: docker login --username=qiaoyeye

3. https://hub.docker.com/ で必要なイメージを見つけます。

4. イメージをローカルにプルする: docker pull centos

5. jdkとtomcatソフトウェアをローカルに準備し、解凍してサーバーに配置します。

6. 新しいDockerfileファイルを作成し、大文字と小文字の区別に注意してください

#----------------------------------------------------------------------

#これはコメントです#ベースイメージ centos:latest を使用します

Centos:latest から
#画像作成者情報を指定します MAINTAINER qiaoyeye <<A href="mailto:[email protected]@163.com" rel="external nofollow" >[email protected]>

#イメージディレクトリを切り替えて/usrディレクトリに入ります(基本イメージはLinuxシステムなので、対応するディレクトリを表示するにはLinuxを参照してください)
ワークディレクトリ /usr

#jdkを保存するために/usr/の下にjavaディレクトリを作成します
mkdir javaを実行する

#ミラーディレクトリを/usr/javaに切り替える
ワークディレクトリ /usr/java

#jdkファイルを保存するため、/usr/javaの下にjdkディレクトリを作成します。RUN mkdir jdk

#ミラーディレクトリを/usr/java/jdkに切り替えます
ワークディレクトリ /usr/java/jdk

#ホストのjdkディレクトリにあるすべてのファイルをミラーの/usr/java/jdkディレクトリに追加します。ADD jdk /usr/java/jdk

#ミラーディレクトリを/optに切り替える
ワークディレクトリ /opt

#Tomcatファイルを保存するため、/optの下にTomcatディレクトリを作成します。RUN mkdir tomcat

#ホストマシンの tomcat ディレクトリにあるすべてのファイルをミラーの /opt/tomcat ディレクトリに追加します ADD tomcat /opt/tomcat

#環境変数ENV JAVA_HOME=/usr/java/jdkを設定します
環境変数 JAVA_BIN = /usr/java/jdk/bin
環境変数PATH=$PATH:$JAVA_HOME/bin
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#コンテナの起動時に実行する操作を設定する CMD /opt/tomcat/bin/catalina.sh run

#----------------------------------------------------------------------

7. ミラーを作成します: docker build -tqiaoyeye/centos:latest。

最後のドットに注目

8. 作成されたDockerイメージを表示する

9. イメージ値をハブ ウェアハウスにアップロードします。

docker pushqiaoyeye/centos:最新

10. アップロードしたイメージがdockerhubのものではなく、イメージ名が: Docker ID/ウェアハウス名の場合、最初に: docker tag image ID Docker ID/ウェアハウス名: 新しいタグ名 (tag) を使用します。

sudo docker tag bd213262aa2cqiaoyeye/centos:latest

11. アップロードが成功したら、dockerhubにログインして確認します。

PS: Alibaba Cloud に画像をアップロードするにはどうすればいいですか? ? ?

Alibaba Cloudに画像をアップロードする手順は上記と同じです。食事カードの詳細な公式手順:https://cr.console.aliyun.com/repository/cn-beijing/qiaoyeye/test1/details

1. Alibaba Cloud Dockerレジストリにログインする

$ sudo docker login --username=乔叶叶registry.cn-beijing.aliyuncs.com

ログインに使用するユーザー名は Alibaba Cloud アカウントのフルネーム、パスワードはサービスを有効にしたときに設定したパスワードです。

製品コンソールのホームページでログイン パスワードを変更できます。

2. レジストリからイメージを取得する

$ sudo docker pull registry.cn-beijing.aliyuncs.com/qiaoyeye/test1:[イメージのバージョン番号]

3. イメージをレジストリにプッシュする

$ sudo docker login --username=乔叶叶registry.cn-beijing.aliyuncs.com$ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/qiaoyeye/test1:[イメージのバージョン番号]$ sudo docker push registry.cn-beijing.aliyuncs.com/qiaoyeye/test1:[イメージのバージョン番号]

例中の[ImageId]および[Image version number]パラメータは実際の画像情報に合わせて置き換えてください。

4. 適切なイメージリポジトリアドレスを選択する

ECS からイメージをプッシュするときに、イメージ リポジトリのイントラネット アドレスを使用することを選択できます。プッシュ速度が向上し、パブリック ネットワーク トラフィックが消費されなくなります。

使用しているマシンが従来のネットワーク内にある場合は、ログインするレジストリのドメイン名として、またイメージの名前空間プレフィックスとして、registry-internal.cn-beijing.aliyuncs.com を使用します。

使用しているマシンが VPC ネットワーク内にある場合は、レジストリにログインするためのドメイン名として、またイメージの名前空間プレフィックスとして、registry-vpc.cn-beijing.aliyuncs.com を使用します。

5. 例

「docker tag」コマンドを使用してイメージの名前を変更し、プライベート ネットワーク アドレス経由でレジストリにプッシュします。

$ sudo docker imagesリポジトリタグイメージID作成仮想サイズregistry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7日前 37.89 MB$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816

「docker images」コマンドを使用してイメージを見つけ、イメージ名のドメイン名をレジストリのプライベート ネットワーク アドレスに変更します。

$ sudo docker push registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerイメージ解析ツールのダイブ原理解析
  • Dockerfileを使用してApacheイメージを作成する方法
  • Docker イメージのローカル Elasticsearch ポート操作へのアクセス
  • スーパーバイザーによるDockerfileのマルチサービスイメージパッケージ操作
  • Dockerイメージの圧縮と最適化操作

<<:  この記事では、VUE の複数の DIV とボタン バインディングの Enter イベントを実装する方法を説明します。

>>:  MySQL 8.0 のタイムゾーン問題を解決する手順

推薦する

Node.js の fs モジュールと Path モジュールのメソッドの詳細な説明

概要:ファイルシステム モジュールは、標準の POSIX ファイル I/O 操作セットをラップしたシ...

MYSQLデータベースの最適化段階を簡単に理解する

導入面接官がこんな質問をしたことはありませんか?データベースをどのように最適化しますか?では、この質...

MySQLデータベース移行により、大量のデータを迅速にエクスポートおよびインポートできます

データベースの移行は、よく遭遇する問題です。データ量が少ない場合、移行は基本的に問題になりません。実...

Mysql SSHトンネル接続を使用するための基本的な手順

序文セキュリティ上の理由から、MySQL の root ユーザーはローカルにのみログインでき、外部ネ...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

テーブルを使用する場合と CSS を使用する場合 (経験の共有)

TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...

MySQL 5.7 のパフォーマンスと sys スキーマの監視パラメータの説明 (推奨)

1. パフォーマンス スキーマ: はじめにMySQL 5.7 では、多数の新しい監視項目の導入、ス...

初心者のためのWebサイト構築入門 ③ エイリアス(CNAME)レコードとURL転送

①. エイリアス(CNAME)レコードの使用方法:前回の投稿のドメイン名解決では、A レコードの解...

MySQLの誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明

序文日常の仕事や勉強では、データベースを操作するときに「不注意」によるミスを犯すことは避けられません...

高速でクールな揺れアニメーション効果を実現するCSS

1. Animate.css の紹介Animate.css は、Web プロジェクトですぐに使用で...

MySQLインデックスの簡単な分析

データベース インデックスは、テーブル操作の速度を向上させることを目的としたデータ構造です。高速なラ...

Vue3 Vue CLI マルチ環境設定

目次1. はじめに2. 切り替え1. 開発および本番環境の設定ファイルを追加する2. 複数の環境をサ...

MySQL の DOS ウィンドウの文字化け問題を解決する方法

文字化けしたコードの問題は次のとおりです。 この問題の原因は非常に単純です。コマンドラインのエンコー...

HTML フォームタグチュートリアル (2):

このチュートリアルでは、ウェブデザインにおけるFORMフォームタグのさまざまな属性の応用を紹介します...

CentOs システムで Python と yum をアンインストールするソリューション

事故の背景: 数日前、プロジェクトの必要性により、サーバーに python-mysql モジュールを...