DevOps のさらなる発展とクラウド ネイティブ アプリケーションの人気により、Docker は開発、展開、運用および保守のための標準ツールの 1 つになりました。 Docker はコンテナを直接操作するツールであり、コンテナはコード、環境、依存関係を独立した実行環境にパッケージ化し、それを異なるノードに迅速に移植してデプロイして最大化できる軽量の仮想化手法を提供し、アプリケーションの移植性と拡張性を大幅に向上させます。 、運用とメンテナンスがより便利かつ効率的になります。
しかし、実際に Docker を使用していると、イメージが見つからないなどの奇妙な問題が発生することがあります。この問題は通常、Docker Hub 上のイメージが削除されているか、イメージが配置されているレジストリにアクセスできないことが原因で発生します。これにより、イメージをプルするプロセス中に Docker がエラーを発生させ、アプリケーション全体の安定性と信頼性に影響を及ぼします。
それでは、この問題をどうやって解決すればいいのでしょうか?一般的に、解決策は 2 つあります。1 つは、Alibaba Cloud、Tencent Cloud などの他のイメージ ソースを使用することです。もう 1 つは、Docker Registry をローカルに構築し、必要なイメージをローカルに保存することで、外部ソースに依存しなくなります。ミラーソースにより、アプリケーションの信頼性と安定性が向上します。
他のイメージ ソースを使用する
Alibaba Cloud を例に挙げると、まず Alibaba Cloud のコンテナ イメージ サービスにアカウントを登録し、サービスをアクティブ化する必要があります。コンソールで「Image Accelerator」を選択するとURLが表示されますが、このURLはAlibaba Cloudが提供するDockerイメージアクセラレータのアドレスです。
このアドレスを /etc/docker/daemon.json
ファイルにコピーし、Docker サービスを再起動します。例:
{ "registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"] }
Docker コマンドを使用して後でイメージをプルする場合、コマンドの後に --registry-mirror
パラメーターを追加して、Alibaba Cloud Mirror Accelerator の使用を指定できます。例:
docker pull --registry-mirror=https://xxxxxxxx.mirror.aliyuncs.com library/nginx
Docker Registry をローカルに構築する
Alibaba Cloud や Tencent Cloud などの国内の Docker Hub イメージ ソースを使用すると、イメージ不足の問題を解決できますが、これらの企業のオペレーティング モデルはリソースを頻繁に使用する必要がある一部の企業では、より高いコスト圧力に直面する可能性もあります。さらに、一部の重要なデータを中国国内で保存および送信することも義務付けられ始めているため、ある時点で外国登録ポートが利用できないことがボトルネックになる可能性があります。
Docker レジストリをローカルに構築すると、これらの問題を解決できます。 Linux サーバー上に Docker レジストリを構築し、必要なイメージをこのレジストリにプッシュするだけです。具体的な手順は次のとおりです。
ローカル サーバーで次のコマンドを使用して、Docker レジストリ イメージをプルします:
docker pull registry
次のコマンドを使用して Docker レジストリ コンテナを起動します。
docker run -d -p 5000:5000 --restart=always --name registry registry:latest
デフォルトでは、レジストリはローカル ポート 5000 でリッスンし、ローカル ファイル システムをイメージ ストレージ ライブラリとして使用します。
ローカル コンピューターで次のコマンドを使用して、ローカル Dcoker イメージをレジストリにプッシュします:
docker tag <local_image_name> <registry_url>/<remote_image_name> docker push <registry_url>/<remote_image_name>
where < local_image_name>
はローカル Docker イメージ名、<registry_url>
はローカル サーバーの IP アドレスと 5000 のポート番号、<remote_image_name>
はレジストリにプッシュされたイメージの名前。
次のコマンドを使用して、レジストリからイメージをプルします:
docker pull <registry_url>/<remote_image_name>
Docker レジストリをローカルに構築することで、必要なイメージを保存および取得し、Docker イメージのデプロイと操作をより適切に制御します。さらに、ローカルに構築された Docker レジストリは、イメージ管理、アカウント許可制御、イメージ ウェアハウス モデリング、イメージ共有などのより高度な機能をサポートでき、これらの機能により、Docker の運用および保守プロセスがさらに最適化され、DevOps のパフォーマンスが向上します。 。
つまり、イメージの欠落の問題は、Docker の運用中によくある厄介な問題ですが、Alibaba Cloud などの信頼できる Docker イメージ アクセラレータを使用したり、Docker レジストリをローカルに構築したりすることで、この問題をうまく解決できます。アプリケーションの信頼性と安定性が向上し、構築と展開が高速化され、DevOps の効率が向上します。
以上がDocker イメージが消えるとどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。