独自の 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 のタイムゾーン問題を解決する手順

推薦する

docker run 起動パラメータ コマンドを表示する方法 (推奨)

runlike を使用してコンテナの docker run 起動パラメータを表示します。 pipを...

Linux で FastDFS ファイル サーバーを構築するための実装手順

目次1. ソフトウェアパッケージ2. gccをインストールする3. libfastcommonをイン...

Tomcatのクラスロードメカニズムのプロセスとソースコード分析

目次序文1. Tomcat クラスローダー構造図: 2. Tomcat のクラスロードプロセスの説明...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

CentOS 7.2 に SuPHP をインストールするための詳細な手順

デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...

Nodejs で WeChat アカウント分割を実装するためのサンプルコード

会社のビジネスシナリオでは、WeChat アカウント分割機能を使用する必要があります。公式 Web ...

CSSの2つの特別な値は、カスケードの継承と初期メソッドを制御するために使用されます。

カスケードを制御するために CSS の任意のプロパティに割り当てることができる特別な値が 2 つあり...

MySQL シャーディング入門ガイド

序文リレーショナル データベースは、システムのボトルネックになる可能性が高くなります。単一のマシンの...

Expressを使用してプロジェクトを自動的にビルドするNode.jsのプロセス全体

1. Expressライブラリとジェネレータをインストールするcmdを開いて、次のコマンドを入力しま...

Mysql 複数データベースのバックアップ コード例

この記事は主にMysqlの複数データベースのバックアップのコード例を紹介します。この記事ではサンプル...

DockerToolBox ファイルマウント実装コード

docker を使用すると、ファイルをマウントできない場合があります。これは、仮想マシンの共有フォル...

MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...

ミニプログラム録画機能の実装

序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...

MySQL データベースで機密データの暗号化と復号化を実装する方法

目次1. 準備2. MySQL暗号化関数方式2.1 MySQL 暗号化2.2 MYSQL 復号化3....

setup+ref+reactive は vue3 の応答性を実装します

セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...