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 スマート コントラクトをデプロイする方法

推薦する

テーブルを使用してフォームコントロールの形式を調整し、見栄えを良くします。

自分でウェブページを書きたいので、HTML 言語についても少し勉強しています。これは、大学時代にウェ...

曇り空のアイコン効果を実現する純粋な CSS

効果効果は以下のとおりです​実装のアイデアbox-shadow プロパティを使用して、複数の灰色の円...

スクロールバーの美化効果を実現するための CSS3 のサンプル コード

具体的なコードは次のとおりです。 /*スクロールバーの幅*/ ::-webkit-スクロールバー{ ...

DockerでLinuxシェルコマンドを実行する方法

Docker でシェル コマンドを実行するには、コマンドの前に sh -c を追加する必要があります...

集める価値のある 15 個の JavaScript 関数

目次1. 数字を逆にする2. 配列内の最大のn個の数値を取得する3. 階乗を計算する4. 現在の動作...

MySQL 5.7 zip アーカイブ バージョンのインストール チュートリアル

この記事では、MySQL 5.7 zipアーカイブ版のインストールチュートリアルを参考までに紹介しま...

MySQL でトランザクションのコミットとロールバックを実装する方法の詳細な例

最近、データベース データのスケジュールされた移行を実行する必要があります。実行プロセス中に何らかの...

node.js の require メソッドの読み込みルールの詳細な説明

require メソッドの読み込みルールキャッシュからの読み込みを優先するコアモジュールパス形式のモ...

CSSはスクロールを許可しながらスクロールバーを非表示にするためにオーバーフローを設定します

CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...

Node.js ファイルのコピー、フォルダの作成、その他の関連操作

NodeJS は次のファイルをコピーします:通常、小さなファイルのコピー操作では、ストリーム パイプ...

固定テーブル幅テーブルレイアウト: 固定

テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...

要素のフォーム要素の使用の概要

フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...

フォーム要素属性の読み取り専用と無効の使用の比較

1) 適用範囲:読み取り専用:input[type="text"],input[...

Linux での GDB 入門チュートリアル

序文gdb は Linux で非常に便利なデバッグ ツールです。コマンドライン モードのデバッグ ツ...

CSS BEM 命名標準の概要 (推奨)

1 BEM命名標準とはBem は、ブロック、要素、修飾子の略語であり、Yandex チームによって...