CentOS 7.5 に Docker をインストールする詳細なチュートリアル

CentOS 7.5 に Docker をインストールする詳細なチュートリアル

Docker入門

Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテナ エンジンです。 Docker はアプリケーション層とインフラストラクチャ層を分離し、インフラストラクチャをプログラムのように管理します。

Docker を使用すると、アプリケーションのパッケージ化、テスト、デプロイをより迅速に実行でき、コードの作成からデプロイ、実行までのサイクルを短縮できます。

Docker の利点は次のとおりです。

1. プロセスを簡素化する

Docker を使用すると、開発者はアプリケーションと依存パッケージをポータブル コンテナーにパッケージ化し、それを一般的な Linux マシンに公開して仮想化を実現できます。 Docker は仮想化の方法を変え、開発者が自分の結果を直接 Docker に入れて管理できるようになりました。利便性とスピードはすでに Docker の最大の利点です。以前は数日、あるいは数週間かかっていたタスクも、Docker コンテナを使用すれば数秒で完了できます。

2. 恐怖症を選ばないようにする

選択をすることに恐怖を感じるなら、あなたはベテラン患者です。 Docker はエンタングルメントのパッケージ化に役立ちます。たとえば、Docker イメージ。Docker イメージには動作環境と構成が含まれているため、Docker を使用すると複数のアプリケーション インスタンスの展開を簡素化できます。たとえば、Web アプリケーション、バックエンド アプリケーション、データベース アプリケーション、Hadoop クラスターなどのビッグ データ アプリケーション、メッセージ キューなどをすべてミラー イメージにパッケージ化して展開できます。

3. お金を節約する

一方では、クラウド コンピューティング時代の到来により、開発者は成果を追求するために高価なハードウェアを構成する必要がなくなりました。Docker は、高いパフォーマンスには高いコストがかかるという考え方を変えました。 Docker とクラウドを組み合わせることで、クラウドスペースをより有効に活用できるようになります。ハードウェア管理の問題を解決するだけでなく、仮想化の方法も変わります。

Docker アーキテクチャ

Dockerデーモン

Docker デーモンは、ホスト (DOCKER-HOST) 上で実行されるバックグラウンド プロセスです。 Docker クライアントを介して通信できます。

クライアント

Docker クライアントは Docker のユーザー インターフェイスであり、ユーザー コマンドと構成フラグを受け入れ、Docker デーモンと通信できます。図中のdocker buildなどはすべてDocker関連のコマンドです。

画像

Docker イメージは、Docker コンテナを作成するための手順が含まれた読み取り専用テンプレートです。これはシステム インストール CD に少し似ています。システム インストール CD を使用してシステムをインストールできます。同様に、Docker イメージを使用して Docker イメージ内のプログラムを実行できます。

容器

コンテナはイメージの実行可能なインスタンスです。イメージとコンテナの関係は、オブジェクト指向プログラミングにおけるクラスとオブジェクトの関係に多少似ています。コンテナは、Docker API または CLI コマンドを使用して起動、停止、移動、削除できます。

レジストリ

Docker Registry は、イメージを集中的に保存および配布するためのサービスです。 Docker イメージをビルドしたら、現在のホスト上で実行できます。ただし、このイメージを他のマシンで実行する場合は、手動でコピーする必要があります。現時点では、Docker Registry を使用すると、イメージを手動でコピーする必要がなくなります。

Docker レジストリには複数の Docker リポジトリを含めることができ、各リポジトリには複数のイメージ タグを含めることができ、各タグは Docker イメージに対応します。これは、Maven のウェアハウスに多少似ています。Docker Registry を Maven のウェアハウスと比較すると、Docker ウェアハウスは jar パッケージのパスとして理解でき、イメージ タグは jar パッケージのバージョン番号として理解できます。

Docker レジストリは、パブリック Docker レジストリとプライベート Docker レジストリに分けられます。最も一般的に使用される Docker レジストリは公式の Docker Hub であり、これがデフォルトの Docker レジストリでもあります。 Docker Hub には優れたイメージが多数保存されており、Docker コマンドを使用してダウンロードして使用できます。

Dockerのインストール

Docker はオープンソースの商用製品で、Community Edition (CE) と Enterprise Edition (EE) の 2 つのバージョンがあります。エンタープライズ バージョンには、通常は個々の開発者が使用しない有料サービスがいくつか含まれています。以下の紹介はコミュニティ版のものです。

Docker CE のインストールについては、公式ドキュメントを参照してください。ここでは CentOS を例に説明します。

1. DockerではCentOSシステムのカーネルバージョンが3.10以上である必要があります。

uname -rコマンドで現在のカーネルバージョンを確認します。

# uname -r

オペレーティングシステムのバージョンを確認する

# cat /etc/redhat-release

2. 古いバージョンをアンインストールします(古いバージョンがインストールされている場合)

# yum remove docker docker-common docker-selinux docker-engine

3. yumソースアドレスを確認する

# yum repolist

4. yumソースを設定し、yumパッケージインデックスを更新する

# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# yum makecache fast

5. すべてのリポジトリのすべてのDockerバージョンを表示し、インストールする特定のバージョンを選択できます。

# yum list docker-ce --showduplicates | sort -r

6. Dockerをインストールする

# yum install docker-ce #リポジトリでは安定版リポジトリのみがデフォルトで有効になっているため、安定版バージョン 18.03.1 がここにインストールされます

# yum install <FQPN> # 例: yum -y install docker-ce-18.03.1.ce

7. ブートを開始して参加する

# systemctl start docker

# systemctl enable docker

8. インストールが成功したかどうかを確認します (クライアントとサービス部分が存在する場合、Docker のインストールと起動が成功したことを示します)

# docker version

9. Dockerをアンインストールする

# yum -y remove docker-engine

Docker 共通コマンド

ミラー関連コマンド

1. 画像を検索する

docker search コマンドを使用して、Docker Hub に保存されているイメージを検索できます。このコマンドを実行すると、Docker は Docker Hub でキーワード tomcat を含むイメージ リポジトリを検索します。

上記のリストには 5 つの列が含まれており、それぞれの意味は次のとおりです。

- NAME: イメージリポジトリの名前。

- 説明: イメージ リポジトリの説明。

- STARS: ミラーリポジトリのコレクションの数。GitHub の stars0 と同様に、ミラーリポジトリの人気度を示します。

- OFFICAL: 公式リポジトリであるかどうかを示します。この列に [0K] とマークされているイメージは、各ソフトウェアの公式プロジェクトチームによって作成および管理されています。

- AUTOMATED: 自動的に構築されたイメージ リポジトリであるかどうかを示します。

2. 画像をダウンロードする

docker pull コマンドを使用して、Docker レジストリからイメージをダウンロードします。コマンドを実行すると、Docker は Docker Hub の tomcat リポジトリから最新バージョンの tomcat イメージをダウンロードします。特定のバージョンをダウンロードしたい場合は、tomcat の後にコロンを追加してバージョンを指定します。例: docker pull tomcat:7

# docker pull tomcat:7

3. 画像を一覧表示する

docker imagesコマンドを使用してダウンロードしたイメージを一覧表示します。

# docker images

上記のリストは以下の意味を持ちます。

- リポジトリ: イメージが属するリポジトリの名前。

- TAG: 画像タグ。デフォルトは latest で、これは最新を意味します。

- 画像 ID: 画像の一意の識別子を示す画像 ID。

- CREATED: イメージの作成時刻。

- サイズ: 画像サイズ。

4. ローカルイメージを削除する

docker rmiコマンドを使用して、指定したイメージを削除します。

# docker rmi tomcat:7

コンテナ関連コマンド

1. コンテナを作成して起動する

コンテナを作成して起動するには、次の docker run コマンドを使用します。このコマンドは最もよく使用されるコマンドであり、多くのオプションがあります。よく使用されるオプションの一部を以下に示します。

-d オプション: バックグラウンド操作を示します

-pオプション: ポートマッピングを指定します。

--ホストポート:コンテナポート

# docker run -d -p 8080:8080 tomcat:7

これにより、Tomcat コンテナが起動します。この例では、次の意味を持つ 2 つのパラメータが docker run に追加されます。

-d バックグラウンドで実行

-p ホストポート: コンテナポート

ここでは、コンテナのポート 8080 が仮想マシンのポート 8080 にマッピングされています。仮想マシンに付属のブラウザから 127.0.0.1:8080 にアクセスするか、物理マシンから仮想マシンの ip:8080 (192.168.126.128:8080) にアクセスすることでアクセスできます。いずれも同じ意味です。

http://Docker ホスト IP:8080/ にアクセスすると、次のように Tomcat のメイン インターフェイスが表示されます。

docker run コマンドを使用してコンテナを作成する場合、最初に指定されたイメージがローカルに存在するかどうかが確認されることに注意してください。この名前のイメージがローカルに存在しない場合、Docker は Docker Hub からイメージを自動的にダウンロードし、Docker コンテナを起動します。

2. コンテナの一覧

実行中のコンテナを一覧表示するには、docker psコマンドを使用します。

# docker ps

すべてのコンテナ(停止したものも含む)を一覧表示するには、-a パラメータを使用します。リストには7つの列があり、意味は次のとおりです。

- CONTAINER_ID: コンテナ ID を示します。

- IMAGE: 画像名を示します。

- COMMAND: コンテナの起動時に実行するコマンドを示します。

- CREATED: コンテナの作成時刻を示します。

- STATUS: コンテナの実行ステータスを示します。 UP は実行中であることを意味し、Exited は停止していることを意味します。

- PORTS: コンテナの外部ポート番号を示します。

- NAMES: コンテナ名を示します。名前はデフォルトで Docker によって自動的に生成されますが、docker run コマンドの --name オプションを使用して自分で指定することもできます。

3. コンテナを停止する

コンテナを停止するには、docker stop コマンドを使用します。

# docker stop4dbf26d1624d

4dbf26d1624d はコンテナ ID です。docker stop を使用して、指定したコンテナを停止することもできます。

4. 停止したコンテナを起動する

docker run コマンドを使用してコンテナを作成して起動します。停止したコンテナの場合は、docker startコマンドを使用して起動できます。

# docker start4dbf26d1624d

5. コンテナログを表示する

# docker container logs 4dbf26d1624d

6. コンテナに入る

実行中の Docker コンテナに入るには、docker exec コマンドを使用します。 docker run コマンドでコンテナを実行するときに -it パラメータが使用されていない場合は、このコマンドを使用してコンテナに入る必要があります。コンテナ内に入ると、コンテナのシェルでコマンドを実行できます。

# docker exec -it 4dbf26d1624d /bin/bash

コンテナから出る

# exit

7. コンテナを削除する

指定したコンテナを削除するにはdocker rmコマンドを使用します。

# docker rm4dbf26d1624d

このコマンドは停止したコンテナのみを削除できます。実行中のコンテナを削除するには、-f パラメータを使用します。

Docker仮想化の原理

従来の仮想化とコンテナ技術の構造の比較:

従来の仮想化技術では、ハードウェア レベルで仮想化を実装するため、システム コール リンクが追加され、パフォーマンスが低下します。

コンテナ仮想化技術はカーネルを共有することで実装され、パフォーマンスの低下はほとんどありません。

以下もご興味があるかもしれません:
  • CentOS7にDockerをインストールする詳細な手順
  • CentOSにDockerをインストールする方法
  • CentOS 7にDockerをインストールする
  • CentOS 8 に Docker をインストールする詳細なチュートリアル
  • CentOS 8.4 に Docker をインストールする詳細なチュートリアル
  • CentOS 8にdockerをインストールする最も詳細な方法
  • CentOS 8.4 での Docker パッケージのオフラインインストールの問題について
  • Centos7 に Docker をインストールします (2020 の最新バージョンが利用可能、コピーして貼り付けるだけ)
  • Linux Centos でスクリプトを使用して Docker をインストールする方法
  • Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明
  • CentOS用のDockerの特定のバージョンをインストールする

<<:  MySQL 実験: explain を使用してインデックスの傾向を分析する

>>:  JavaScript はクリックして画像の形状を変更する (変換アプリケーション) を実装します。

推薦する

Linux での MySQL 5.7.17 の最新安定バージョンのインストール チュートリアル

ソースコードを通じて Linux に最新の安定バージョンの MySQL をインストールします: my...

Linux の文字端末でマウスを使って赤い四角形を移動する方法

すべてがファイルです! UNIX はすでにそれを言っています。エリック・レイモンドはこう言いました。...

MySQL 8.0 のインデックス スキップ スキャン

序文MySQL 8.0.13 では、インデックス スキップ スキャン (インデックス ジャンプ スキ...

MySQL インデックス カバレッジの例の分析

この記事では、MySQL インデックス カバレッジについて例を挙げて説明します。ご参考までに、詳細は...

MySQL コマンドライン操作中のエンコードの問題の詳細な説明

1. MySQLデータベースのエンコーディングを確認する mysql -u ユーザー名 -p パスワ...

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

JavaScript が Taobao の虫眼鏡効果を模倣

この記事では、淘宝虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...

Red Hat Enterprise Linux 8 をベースにした CentOS 8 が正式にリリースされました

CentOS プロジェクトは、Red Hat の再配布要件に完全に準拠した、Red Hat Ente...

JS 内の Json 文字列 + Cookie + ローカルストレージ

目次1.Json文字列1.1Json構文1.2 例2. クッキー2.1 使い方は? 3. ローカルス...

HTML+CSSプロジェクト開発経験概要(推奨)

ここ数日ブログを更新していませんでした。簡単な HTML+CSS プロジェクトを終えたところです。数...

CocosCreator でカメラトラッキングに cc.follow を使用する方法

Cocos Creator バージョン: 2.3.4デモのダウンロード: https://files...

実用的な基本的な Linux sed コマンドのサンプルコード

Linux ストリーム エディターは、データ センターでスクリプトを実行するのに便利な方法です。これ...

nginxでの共有メモリの使用に関する詳細な説明

nginx プロセス モデルでは、トラフィック統計、トラフィック制御、データ共有などのタスクを完了す...

HTML マルチメディア アプリケーション: Web ページにフラッシュ アニメーションと音楽を挿入する

1. HTML_falshアニメーションでのマルチメディアの応用(WebページへのFlashアニメー...

CSSアニメーションでポイント獲得効果を実現するアイデアを詳しく解説

最近のプロジェクトでは、ポイントを集める効果を作成する必要があります。 ボスの説明によると、この効果...