Dockerの基礎

Dockerの基礎

序文:

Docker はオープンソースのアプリケーション コンテナ エンジンであり、開発者はこれを使用してアプリケーションと依存関係をポータブル イメージにパッケージ化し、一般的な Linux または Windows マシンに公開できます。近年、中国ではDockerが急速に発展しており、特にインターネット企業ではDockerの使用が非常に一般的になり、アプリケーションのメンテナンス効率が大幅に向上し、クラウドコンピューティングアプリケーションの開発コストが削減されました。この記事では主に Docker とそのインストールおよび簡単な使用方法を紹介します。

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

Docker を学ぶには、まず Docker をインストールする必要があります。バージョン 17.03 以降、Docker は CE (Community Edition) と EE (Enterprise Edition) に分かれています。以下では、CentOS システムを例に、Docker Community Edition のインストールを紹介します。

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

Docker の古いバージョンは docker または docker-engine と呼ばれます。古いバージョンをアンインストールするには、次のコマンドを使用します。

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

依存パッケージをインストールする

#yumの設定 source sudo yum-config-manager \
--リポジトリを追加\
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

#依存パッケージをインストールします sudo yum install -y yum-utils \
デバイスマッパー永続データ \
lvm2

Docker CEの最新バージョンをインストールする

sudo yum-config-manager --enable docker-ce-edge
sudo yum makecache 高速
sudo yum で docker-ce をインストールします

Docker CEを起動する

sudo systemctl でdockerを有効にする
sudo systemctl dockerを起動します

Dockerユーザーグループを作成する

sudo グループ追加 docker
sudo usermod -aG docker $USER

hello-worldテストを実行する

$ docker run hello-world
ローカルでイメージ 'hello-world:latest' が見つかりません
最新: library/hello-world から取得
ca4f61b1923c: プル完了
ダイジェスト: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c
ステータス: 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 のインストールに成功しました。同様に、Windows と macOS に Docker をインストールするのも非常に簡単です。Docker Desktop インストール パッケージをダウンロードしてインストールし、使用することができます。詳細については、次の公式ドキュメントを参照してください。

https://docs.docker.com/docker-for-windows/インストール/
インストール

2. 一般的なコマンドの紹介

Docker を学ぶには、まずその全体的なアーキテクチャを理解する必要があります。ここでは、Docker の 3 つの基本概念について簡単に紹介します。

  • イメージ: Docker イメージはルート ファイル システムに相当します。たとえば、公式イメージ ubuntu:16.04 には、Ubuntu 16.04 最小システムの完全なルート ファイル システムが含まれています。
  • コンテナ: イメージとコンテナの関係は、オブジェクト指向プログラミングにおけるクラスとインスタンスの関係に似ています。イメージは静的な定義であり、コンテナはイメージ実行時のエンティティです。コンテナは作成、開始、停止、削除、一時停止などが可能です。
  • リポジトリ: リポジトリは、イメージを保存するために使用されるコード制御センターです。

ミラー関連のコマンド:

1) 画像の検索
docker search イメージ名 (redis など)

2) 画像をダウンロードする
docker pull イメージ名

3) ローカルミラーリストを表示する
Docker イメージ

4) 画像を削除する
docker rmi イメージ ID

コンテナ関連のコマンド:

1) イメージをコンテナとして実行する
docker run --name コンテナ名 -d イメージ名
-d は detached の略で、このコマンドを実行した後、コンソールがブロックされず、コマンドの入力を続行できることを意味します。
2) 実行中のコンテナのリストを取得する
ドッカーps
3) 終了コメントを含むすべてのコンテナのリストを取得します。
ドッカーps -a
4) コンテナを停止して起動する
docker 開始/停止 コンテナ名/ID

5) ポート マッピングでは、コンテナー内で実行されているソフトウェアのポートをホストのポートにマッピングする必要があります。マッピングしないと、LAN 内のホストはソフトウェアにアクセスできなくなります。
docker run -d -p 6378:6379 --name myRedis redis
-p: コンテナのポート6379をホストのポート6378にマップします
6) コンテナを削除する
docker rm id
7) 現在のコンテナログを表示する
docker ログ名/ID
8) コンテナにログインする
docker exec -it コンテナ名 bash
-i: 入力が有効であることを確認する
-t: 現在のコンテナにログインするための擬似端末が割り当てられます。ログイン後はコンテナ内で通常の Linux コマンド操作を実行できるほか、exit コマンドを使用してログアウトすることもできます。

要約:

この記事では、Dockerのインストールとよく使うコマンドについて簡単に紹介します。入門記事として、皆さんのお役に立てれば幸いです。実際、Docker は基本的なツールなので、習得することをお勧めします。たとえば、MySQL インスタンスを数秒で起動できます。また、Docker を使用して新しいバージョンを実行およびテストすることもできます。次の記事では、Docker で MySQL を実行および構成する方法について説明しますので、お楽しみに!

以上がDockerの簡単な入門チュートリアルの詳しい内容です。Dockerの始め方や使い方の詳細については、123WORDPRESS.COMの関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • Dockerの理解と基本コマンドの詳細な説明
  • Dockerの機能と原則の詳細な紹介と分析
  • Dockerを理解する(1):Dockerのインストールと基本的な使い方の詳しい紹介
  • Dockerのインストールと基本的な使い方の詳細な紹介
  • Dockerコンテナイメージ関連コマンドの基本的な紹介と使用方法

<<:  Mysql の読み取り/書き込み分離期限切れに対する一般的な解決策

>>:  jsでユーザー登録機能を実装する

推薦する

完全なMySQL学習ノート

目次MyISAM と InnoDBパフォーマンスの低下と SQL の速度低下の理由: MySQL 実...

JavaScript におけるブラウザ互換性の問題について簡単に説明します

ブラウザの互換性は、実際の開発では見落とされがちな最も重要な部分です。古いバージョンのブラウザの互換...

MySql 自動切り捨て例の詳細な説明

MySql 自動切り捨て例の詳細な説明友人が質問しました。プロジェクト内で挿入または更新ステートメン...

TypeScript インターフェースの紹介

目次1. インターフェース定義2. 属性2.1 オプション属性2.2 読み取り専用プロパティ3. ク...

MySQL テーブルスペースのリカバリに対する正しいアプローチについての簡単な説明

目次予備的注釈問題の再現データ削除の原則データの再利用どの操作がデータホールの原因になりますか?表領...

Vueカスタム指示により、ポップアップウィンドウのドラッグ4辺ストレッチと対角ストレッチ効果を実現

導入同社の最近の Vue フロントエンド プロジェクトの要件: ポップアップ ウィンドウのドラッグ、...

dockerでマウントされたディレクトリが読み書きできない問題を解決する

次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...

Kubernetes コントローラーとラベルの簡単な分析

目次01 k8sの一般的なコントローラーRCコントローラーデプロイメント コントローラーステートフル...

MySQL の条件文で 1 つの情報しか読み取れない問題に対する 2 つの解決策

今日、私の同僚が MYSQL クエリ ステートメントの作成時に非常に奇妙な問題に遭遇しました。MyS...

Navicat For MySQL の使い方に関する簡単なチュートリアル

推薦する: Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル...

Vue el-date-picker 動的制限時間範囲ケースの詳細な説明

2つの状況がある1. 開始時間と終了時間が同じボックス内にあります(今月のみ限定) 2. 開始時間と...

シンプルなページング効果を実現するjQuery+Ajax

この記事では、ページング効果を実現するためのjquery+Ajaxの具体的なコードを参考までに紹介し...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

Vueはブラウザ側のコードスキャン機能を実装します

背景少し前にブラウザカメラの取得とスキャンコード認識の機能を作りました。その際の知識ポイントと具体的...