Docker のインストールと構成イメージの高速化の実装

Docker のインストールと構成イメージの高速化の実装

Dockerバージョン

Docker の急速な発展とエンタープライズ レベルの機能のリリースにより、より優れたサービスには一定の料金を支払う必要があります。現在、Docker は次の 2 つのバージョンに分かれています。

  • コミュニティエディション
  • エンタープライズエディション

Docker Enterprise Edition (EE) は、エンタープライズ開発チームと IT チームがビジネスクリティカルなアプリケーションを大規模に本番環境で構築、出荷、実行できるように設計されています。 Docker EE は統合、認定、サポートされており、企業に業界で最も安全なコンテナ プラットフォームを提供し、すべてのアプリケーションを最新化します。アプリケーション中心のプラットフォームである Docker EE は、あらゆるインフラストラクチャ上で実行される開発から本番環境まで、ソフトウェア サプライ チェーン全体を高速化し、保護するように設計されています。

CE コミュニティ エディションを使用して Docker を学習できます。

CentOS に Docker エンジンをインストールする

Docker は Mac、Windows、Linux をサポートしています。この記事では、Linux 環境を使用して、Docker をインストールし、CentOS に基づいてイメージ アクセラレーションを構成する方法を説明します。

公式ドキュメント: https://docs.docker.com/

システム要件

公式ウェブサイトでは、Docker Engine をインストールする場合は CentOS 7 以上の安定バージョンが必要であると案内されています。

古いバージョンをアンインストールする

古いバージョンの Docker では、 dockerまたはdocker-engineが使用されていました。 これらのプログラムがインストールされている場合は、それらおよび関連する依存関係をアンインストールします。

sudo yum dockerを削除します\
     dockerクライアント\
     docker-client-最新 \
     docker-common \
     docker-最新 \
     docker-最新-logrotate \
     docker-logrotate \
     dockerエンジン

Docker イメージ、コンテナ、データ ボリューム、ネットワーク データはすべて/var/lib/docker/に保存されます。新しい Docker Engine パッケージはDocker-ceになりました。

yumソースの設定

yum-utilsパッケージ ( yum-config-managerプログラムを提供) をインストールし、安定した yum リポジトリを設定して Docker Engine をダウンロードします。

# yum-utilsをインストールする
sudo yum インストール -y yum-utils
# Docker Engine のダウンロードを容易にするために、yum ソースを Alibaba Cloud に設定します
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Dockerのインストール

Docker エンジンとコンテナーの最新バージョンをインストールします。

sudo yum インストール docker-ce docker-ce-cli containerd.io

インストール中に GPG キーを受け入れるよう求められた場合は、フィンガープリントが 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 と一致することを確認し、一致する場合は受け入れます。

Dockerの起動と停止

# Dockerを起動する
sudo systemctl dockerを起動します
# Dockerを停止する
sudo systemctl でdockerを停止します
# Dockerを再起動
sudo systemctl dockerを再起動します
# 起動設定 sudo systemctl enable docker
# docker ステータスを表示 sudo systemctl status docker
# docker でコンテナの実行ステータスを表示する sudo docker stats
# docker の概要情報を表示する sudo docker info
# docker ヘルプドキュメントを表示する sudo docker --help

インストール検証

[root@localhost ~]# docker -v
Docker バージョン 19.03.12、ビルド 48a66213fe
[root@localhost ~]# docker バージョン
クライアント: Docker Engine - コミュニティ
 バージョン: 19.03.12
 APIバージョン: 1.40
 Goバージョン: go1.13.10
 Gitコミット: 48a66213fe
 作成日: 2020年6月22日月曜日 15:46:54
 OS/アーキテクチャ: linux/amd64
 実験的: 偽

サーバー: Docker Engine - コミュニティ
 エンジン:
 バージョン: 19.03.12
 API バージョン: 1.40 (最小バージョン 1.12)
 Goバージョン: go1.13.10
 Gitコミット: 48a66213fe
 作成日: 2020年6月22日月曜日 15:45:28
 OS/アーキテクチャ: linux/amd64
 実験的: 偽
 コンテナ:
 バージョン: 1.2.13
 Gitコミット: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 ランク:
 バージョン: 1.0.0-rc10
 Gitコミット: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
 バージョン: 0.18.0
 Gitコミット: fec3683

画像アクセラレーションの設定

DockerはDocker Hubからイメージをpullします。海外から取得するため速度が遅く、以下のような状況が発生することがあります。

[root@localhost ~]# docker run hello-world
ローカルでイメージ 'hello-world:latest' が見つかりません
docker: デーモンからのエラー応答: https://registry-1.docker.io/v2/library/hello-world/manifests/latest を取得: net/http: TLS ハンドシェイクがタイムアウトしました。
「docker run --help」を参照してください。

国内の画像ソースを設定して取得速度を上げることで、中国からの画像を取得できます。ここでは、中国科学技術大学 (LUG@USTC) のオープンソースミラー (https://docker.mirrors.ustc.edu.cn) と NetEase のオープンソースミラー (http://hub-mirror.c.163.com) を紹介します。

USTC は老舗の Linux イメージ サービス プロバイダーであり、Docker イメージ アクセラレーション サービスは非常に高速です。 USTC と NetEase の利点の 1 つは、登録が不要で、真に公共のサービスであることです。 (Alibabaなどの他のサービスプロバイダーのミラーアクセラレーションサービスもご利用いただけます)

ファイルdaemon.jsonを編集します。

:vi /etc/docker/daemon.json を編集します。

ファイルに次の内容を入力して保存します。

{
 "レジストリミラー": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
}

構成情報を再読み込みし、Docker サービスを再起動します。

# サービスの設定ファイルを再読み込みする sudo systemctl daemon-reload
# Dockerを再起動
sudo systemctl dockerを再起動します

こんにちは世界

hello-worldイメージを実行して、 Docker Engine正しくインストールされていることを確認します。

[root@localhost ~]# docker run hello-world
ローカルでイメージ 'hello-world:latest' が見つかりません # hello-world イメージの最新版が見つかりません: library/hello-world からプルしています # hello-world イメージの最新バージョンをプルします 0e03bdcc26d7: プルが完了しました 
ダイジェスト: sha256:49a1c8800c94df04e9658809b006fd8a686cab8028d33cfba2cc049724254202
ステータス: hello-world:latest の新しいイメージをダウンロードしました

# このメッセージが表示されたら、インストールは成功です。
Dockerからこんにちは!
このメッセージは、インストールが正常に動作していることを示しています。

このメッセージを生成するために、Docker は次の手順を実行します。
 1. Docker クライアントが Docker デーモンに接続しました。
 2. Docker デーモンは Docker Hub から「hello-world」イメージを取得しました。
 (amd64)
 3. Dockerデーモンは、そのイメージから新しいコンテナを作成し、
 現在読んでいる出力を生成する実行可能ファイル。
 4. Dockerデーモンはその出力をDockerクライアントにストリーミングし、Dockerクライアントはそれを
 端末に。

もっと野心的なことに挑戦するには、次のコマンドで Ubuntu コンテナを実行できます。
 $ docker run -it ubuntu bash

無料の Docker ID を使用して、イメージを共有したり、ワークフローを自動化したりすることができます。
 参考:

その他の例やアイデアについては、以下をご覧ください。
 詳しくはこちら

docker run hello-worldコマンドの実行フローチャートは以下のようになります。

上記の手順で、Docker のインストール作業はすべて完了しました。次に、イメージ コマンドとコンテナー コマンドを学習して、Docker の使い方をよりよく理解することができます。

Dockerのインストールとイメージアクセラレーションの設定についてはこれで終わりです。Dockerのインストールとイメージアクセラレーションの詳細については、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerイメージ構築原理の分析(Dockerをインストールしなくてもイメージを構築できる)
  • Dockerパッケージイメージの実装と構成の変更
  • Docker ロード後にイメージ名が none になる問題の解決方法
  • Dockerでイメージ情報を表示する方法
  • Dockerを使用してクローンリポジトリを使用してGitイメージを構築する
  • Docker イメージのダウンロードが遅すぎる場合の解決策

<<:  W3C チュートリアル (11): W3C DOM アクティビティ

>>:  ethers.js を使用して Solidity スマート コントラクトをデプロイする方法

推薦する

ElementUI el-select の過剰なデータに対する解決策についての簡単な説明

目次1. シナリオの説明2. 解決策オプションが多すぎる el-select コンポーネントの解決策...

複数のパッケージソースから同時にパッケージをロードするようにnpmを設定する方法

目次1. ローカルストレージを構築する2. npmパッケージを作成し、プライベートリポジトリにアップ...

Vue のループフォーム項目例の詳細な説明

場合によっては、ユーザーがボタンをクリックして同様のフォームを追加し、クリックごとに 1 回追加でき...

シンプルな画像ドラッグ効果を実現する js

この記事では、簡単な画像ドラッグ効果を実現するためのjsの具体的なコードを参考までに紹介します。具体...

Tomcat が IDEA のコンソールで文字化けを起こし、IDEA エンコーディングを UTF-8 に設定する方法

1. まず、TomcatログのエンコーディングとIdeaログ表示コンソールのエンコーディングを区別す...

mysql における mydumper と mysqldump の比較

いくつかのテーブルまたは単一のデータベースのみをバックアップする場合は、innobackup よりも...

js の関数の長さはどれくらいですか?

目次序文なぜいくらですか?パラメータの数デフォルトパラメータ残りのパラメータ要約する序文今日は関数の...

Dockerは異常なコンテナ操作を排除する

この初心者は、Docker を学び始めたばかりの頃にこのような問題に遭遇しました。記録しておきます。...

mysql エラー 1045 (28000) - ユーザーへのアクセスが拒否される問題を解決する方法

問題の説明 (以下の説明は Windows 環境に限定されます): D:\develop\ide\m...

docker で nginx+php+mysql を設定する方法

まず、方法を理解します。 docker exec を使用して Docker コンテナに入るDocke...

Jenkins Docker 静的エージェント ノードのビルド プロセス

静的ノードはマシン上に固定されており、いくつかの固定コマンドを通じて起動されます。動的ノードには複数...

証明書を使用してリモート Docker サーバーに接続する方法

目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...

Nginx proxy_redirect の使用方法の詳細な説明

今日、Apache の nginx リバース プロキシを実行していたときに、ちょっとした問題に遭遇し...

Vueは質問応答機能を実装する

1. リクエスト回答インターフェース2. ユーザーの回答が正しいかどうかを判断します。回答が正しい場...