Docker クイック スタート、中心的な概念、および一般的な手順
#友人が週末に Docker 関連の問題について尋ねました。今日は、Docker のクイック スタート、中心的な概念、一般的な手順を共有します。
1. 基本的な概念と操作
#1.1. インストール
Linux は Docker のネイティブ サポート プラットフォームであるため、Linux にインストールすることをお勧めします。 CentOS に Docker をインストールするには、ディストリビューション バージョン 7 以降が必要であり、overlay2 ストレージ ドライバーを使用することをお勧めします。# 卸载已有 docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 添加安装源 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 安装最新版 sudo yum install docker-ce docker-ce-cli containerd.io # 启动 sudo yum install docker-ce docker-ce-cli containerd.ioログイン後にコピー
1.2. Image
は、基本的にファイルとフォルダーの読み取り専用の組み合わせであり、All を実行するコンテナーも含まれます。基本的なファイルと構成情報が必要です。操作: 1. イメージの Docker Pull をプルします。 例: docker pull nginx2、イメージの docker タグの名前を変更します。 例: docker tag nginx:latest mynginx:latest
3. イメージ docker image ls または docker image
4 を表示します。次のようなイメージ docker rmi
を削除します。 docker rmi mynginx
5. イメージをビルドする docker build または docker commit 例: docker commit nginx mynginx:lastest docker build は比較的複雑ですが、さらに使用されます
1.3. コンテナ
コンテナはイメージの実行エンティティであり、1 つのイメージから複数のコンテナを作成できます。コンテナーは、コンテナー内にファイル システムの読み取り/書き込みコピーを作成します。
ライフサイクル:
created: 初期作成状態
running: 実行中の状態
stopped: 停止状態
paused: 一時停止状態
deleted: 削除済みステータス
操作: 1. コンテナーを作成して起動します
作成: docker create -it --name=mynginx mynginx
Start : docker start mynginx
作成して開始: docker run -it --name=mynginx mynginx
2. コンテナーを終了します docker stop mynginx
3. コンテナーに入る ドッカーアタッチ mynginx docker exec -it mynginx sh (さらに使用)
4. コンテナーを削除します docker rm mynginx 実行中のコンテナを削除します: docker rm -f mynginx
5. コンテナをエクスポートします。 docker import mynginx > mynginx.tar
6. コンテナのインポート docker import mynginx.tar mynginx:import
Docker イメージの保存と配布、登録サーバーウェアハウスを保存する実際のサーバーには多くのウェアハウスを含めることができ、各ウェアハウスには複数のミラーを含めることができます。 公共倉庫ドッカーハブ https://hub.docker.com/ ログイン: docker ログイン イメージをウェアハウスにプッシュします: docker Pushディストリビューションを使用してプライベート ウェアハウスを構築します https://github.com/distribution/distributiondocker run -d -p 5000:5000 --name registry registry:2.7 docker プッシュ localhost:5000/mynginx###
1.5. ボリューム
は、デフォルトのジョイント ファイル システムをバイパスし、ファイルまたはディレクトリの形式でホスト上に直接存在できます。 。 優れた。これにより、データの永続性とコンテナ間でのデータ共有の問題が解決されます。操作: 1. 作成: docker volume create volume-name
2. -v は永続化するパスを指定します。Docker は自動的にボリュームを作成し、コンテナーにバインドします。 docker run -d --name=nginx-volume -v /usr/share/nginx/html nginx
3. 表示: docker volume ls
4. ボリュームの詳細: docker volume Inspection volume -name
5, --mount パラメータはボリュームの名前を指定します docker run -d --name=nginx --mount source=ボリューム名,target=/usr/share/nginx/html nginx
6. ボリュームの削除: docker volume rm ボリューム名
7. ボリューム間のデータ共有: docker run --mount source=lv,target=/tmp/log --name=v-Producer -it test docker run -it --name Consumer --volumes-from v-Producer test
8. ボリュームとホスト間のデータ共有: docker run -v /data:/usr/local/data -it test
1.6. 重要なコンポーネント
1. Docker
docker、それは Docker クライアントであり、リクエストを送信します。 dockerd (サーバーの入り口) は、リクエストを受信し、結果を返す責任があります。 docker-init, 1コンテナのプロセス番号、サブコンテナを管理します docker-proxy、ホストのネットワーク トラフィックをコンテナに転送します 2、containerd
containerd、コンテナの起動、停止など、コンテナのライフサイクル管理を担当します... containerd-shim、コンテナ プロセスの親プロセスとして、containerd と real を分離します。containerd のクライアントであるコンテナ プロセス - 3. ランタイム
ctr は、開発およびデバッグ中に、containerd にリクエストを送信します。
runc、システム インターフェイスを通じてコンテナを作成および破棄します
1.7. コンテナの監視
docker stats では、ホスト上のすべてのコンテナーの CPU、メモリ、ネットワーク IO、ディスク IO、PID、その他のリソースのリソース使用状況を表示できます。 cAdvisor は、Google がオープンソース化した一般的なコンテナ監視ソリューションです。インストールに関するリファレンス:
https://www.jianshu.com/p/91f9d9ec374f
ビュー監視: http://localhost:8080 http://localhost:8080/containers/ http://localhost:8080/docker/
1.8. セキュリティの問題
セルフセキュリティの脆弱性 イメージにはセキュリティ上の問題があります - #Linux ホスト カーネルの分離では十分ではありません
2.1. 名前空間
ネームスペースは、同じホスト システム内のプロセス ID、ホスト名、ユーザー、ファイル名、ネットワーク、プロセス間通信などのリソースを分離できる Linux カーネルの機能です。Docker は 6 つのタイプを使用します: マウント名前空間、マウント ポイント分離 PID 名前空間、プロセス分離 UTS 名前空間、ホスト名の分離 IPC 名前空間、プロセス間通信の分離 ユーザー名前空間、ユーザーおよびユーザーグループの分離 ネット名前空間、ネットワーク デバイス、IP アドレスおよびポートの分離
2.2、Cgroups
プロセスまたはプロセス グループを制限するCPU、メモリ、ディスク IO などのリソース。 cgroup の機能:# 2.3. Union File System
- #リソース使用量の制限
#グループごとに、CPU、ディスク IO、その他のリソースの使用優先順位が異なる場合があります- 制御グループのリソース使用量を計算する
- #プロセスの一時停止または再開を制御
Union File System は、複数のディレクトリの内容を同じディレクトリに共同でマウントし、単一のファイル システムを形成できる階層化された軽量ファイル システムです。
Docker には、AUFS、Devicemapper、OverlayFS という 3 つの最も一般的に使用されるユニオン ファイル システムがあります。 AUFS は最も古く、最も成熟したものです。2.4. ネットワーク実装
- Devicemapper (Linux カーネルによって提供されるフレームワーク) は、ブロック デバイスをマッピングするための技術フレームワークです。 。中心となる概念には、マップされたデバイス、ターゲット デバイス、およびループ LVM モードとダイレクト LVM モード (実稼働用) を含むマップ テーブルが含まれます。
#overlay2、更新はより安定しており、 Linux カーネルと Docker のバージョンにはより高い要件があります。
Libnetwork には 4 つの主要なネットワーク モデルが含まれています:
null 空のネットワーク モード、コンテナ ネットワークは提供されません ブリッジ ブリッジ モード、コンテナは相互に通信できます ホスト ホスト ネットワーク モード、コンテナはホスト ネットワークと通信します - #コンテナ ネットワーク モード、コンテナは同じネットワーク上に配置され、localhost 経由でアクセスされます
3.1. コンテナ オーケストレーション
Docker 一般的に使用される 3 つのオーケストレーション ツール: Docker Compose、Docker Swarm、Kubernetes。Docker Compose は Docker によって買収されたもので、基本的には 1 つのノード上で複数のコンテナを管理およびオーケストレーションできる Python スクリプトです。
- Docker Swarm は、Docker によって正式に開始されたコンテナ クラスター管理ツールです。Docker API をネイティブにサポートしています。操作が簡単で、TLS 双方向認証をサポートし、Raft プロトコルを使用して、配布を実現します。
- Kubernetes (Google は、内部 Borg システムによって蓄積された技術設計と実装を利用しています。強力で、数億のコンテナの運用をサポートすることを目指しています。ただし、そのアーキテクチャは比較的複雑で、始めるための敷居が高いです。
3.2. devops における役割
DevOps の全体的な目標は、開発を促進することです。運用および保守担当者と協力し、自動化された手段を通じてソフトウェアの配信サイクル全体を短縮し、ソフトウェアの信頼性を向上させます。Docker を通じて開発環境を迅速にインストールし、Dockerfile を迅速に統合してイメージを構築し、イメージをプルしてコンテナーを実行してデプロイメントを完了し、コンテナー オーケストレーション ツールと組み合わせて Blue-Green リリースを実現します。
DevOps の開発を促進します。
迅速に継続的に統合して提供できます。
以上がDocker クイック スタート、中心的な概念、および一般的な手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 分散システム アーキテクチャは、ネットワークに接続されたマシン全体にさまざまなコンポーネントを分散することで、スケーラビリティ、パフォーマンス、およびフォールト トレランスを実現します。このアーキテクチャには、アプリケーション サーバー、メッセージ キュー、データベース、キャッシュ、ロード バランサーが含まれます。 PHP アプリケーションを分散アーキテクチャに移行する手順は次のとおりです。 サービス境界の特定 メッセージ キュー システムの選択 マイクロサービス フレームワークの採用 コンテナ管理への展開 サービスの検出

回答: PHP マイクロサービスは、アジャイル開発のために HelmCharts でデプロイされ、分離とスケーラビリティのために DockerContainer でコンテナ化されます。詳細説明: HelmCharts を使用して PHP マイクロサービスを自動的にデプロイし、アジャイル開発を実現します。 Docker イメージを使用すると、マイクロサービスの迅速な反復とバージョン管理が可能になります。 DockerContainer 標準はマイクロサービスを分離し、Kubernetes がコンテナの可用性とスケーラビリティを管理します。 Prometheus と Grafana を使用して、マイクロサービスのパフォーマンスと健全性を監視し、アラームと自動修復メカニズムを作成します。

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

コンテナ化により、次の方法で Java 関数のパフォーマンスが向上します。 リソースの分離 - 分離されたコンピューティング環境を確保し、リソースの競合を回避します。軽量 - 消費するシステム リソースが少なくなり、実行時のパフォーマンスが向上します。高速起動 - 関数の実行遅延を軽減します。一貫性 - アプリケーションとインフラストラクチャを分離して、環境全体で一貫した動作を保証します。

回答: PHPCI/CD を使用して、CI/CD パイプラインの設定、自動化されたテストおよび展開プロセスなどの迅速な反復を実現します。 CI/CD パイプラインのセットアップ: CI/CD ツールを選択し、コード リポジトリを構成し、ビルド パイプラインを定義します。自動テスト: 単体テストと統合テストを作成し、テスト フレームワークを使用してテストを簡素化します。実際のケース: TravisCI の使用: TravisCI をインストールし、パイプラインを定義し、パイプラインを有効にして、結果を表示します。継続的デリバリーを実装します。展開ツールを選択し、展開パイプラインを定義し、展開を自動化します。利点: 開発効率が向上し、エラーが減少し、納期が短縮されます。

Docker コンテナを使用した Java EE アプリケーションのデプロイ: Dockerfile を作成してイメージを定義し、イメージを構築し、コンテナを実行してポートをマップし、ブラウザでアプリケーションにアクセスします。サンプル JavaEE アプリケーション: REST API はデータベースと対話し、Docker 経由でデプロイ後にローカルホストでアクセスできます。

1. まず、インターフェイスを開いた後、左側の拡張機能アイコン ボタンをクリックします。 2. 次に、開いた拡張機能ページで検索バーの場所を見つけます。 3. 次に、マウスで「Docker」という単語を入力して拡張機能プラグインを見つけます。 4最後に、対象のプラグインを選択して右をクリックし、下隅にあるインストールボタンをクリックします。
