1. Docker とは何ですか? (1)DockerはLinuxコンテナ内でアプリケーションを実行するためのオープンソースツールです。軽量の「仮想マシン」です。 ロゴはシロナガスクジラをモチーフにデザインされています。クジラはホストマシンとして、その上のコンテナは独立したコンテナとして理解でき、それぞれに独自のアプリケーションが含まれています。 (2)Dockerと仮想マシンの違い 軽量な仮想化方式として、Docker は従来の仮想マシンに比べて大きな利点があります。 Docker に多くの利点がある理由は、オペレーティング システムの仮想化自体の特性と切り離せません。従来の仮想マシンでは追加の仮想マシン ハイパーバイザーと仮想マシン オペレーティング システム レイヤーが必要ですが、Docker コンテナーはオペレーティング システム レベルで直接仮想化されます。 (3)Dockerの利用シナリオ 開発者は、クラウド プラットフォームで実行されるアプリケーションを簡単に作成できる必要があります。アプリケーションは基盤となるハードウェアから独立し、いつでもどこでもこれらのリソースにアクセスできる必要があります。これはまさに Docker が提供できるものです。 Docker のコンテナ テクノロジーを使用すると、ホスト上のあらゆるアプリケーション用の軽量でポータブルな自己完結型のコンテナを簡単に作成できます。このコンテナにアプリケーションをパッケージ化すると、再デプロイメントやデバッグなどの単純な繰り返しタスクが簡素化され、作業効率が大幅に向上します。 2. Dockerのコアコンセプトとインストール (1)鏡 Docker のイメージ (mage) は、コンテナを作成するための基礎となります。仮想マシンのスナップショットと同様に、Docker コンテナ エンジンの読み取り専用テンプレートとして理解できます。たとえば、イメージは完全なCentOSオペレーティングシステム環境であり、CentOSと呼ばれる。 (2)コンテナ Dooker のコンテナは、イメージから作成された実行中のインスタンスです。開始、停止、削除が可能です。作成された各コンテナは分離されており、互いに見えなくなるため、プラットフォームのセキュリティが確保されます。コンテナは、簡略化された Linux 環境と考えることができます。Docker はコンテナを使用してアプリケーションを実行および分離します。 (3)倉庫 Docker リポジトリは、イメージを一元的に保存する場所です。独自のイメージを作成したら、push コマンドを使用して、パブリック リポジトリまたはプライベート リポジトリにアップロードできます。このようにしておけば、次回このイメージを別のマシンで使用したいときには、リポジトリからプルするだけで済みます。 (4)Dockerをインストールする ホストがインターネットにアクセスできる場合は、直接インストールできます。 yumの設定 [root@localhost ~]# rm -rf /etc/yum.repos.d/* [root@localhost ~]# vim /etc/yum.repos.d/a.repo [あああ] 名前=asd ベースURL=ファイル:///メディア gpgcheck=0 [root@localhost ~]# /dev/cdrom /media/ をマウントします [root@localhost ~]# yum -y dockerをインストール インストールが完了したら、Dockerを起動し、起動時に自動的に起動するように設定できます。 [root@localhost ~]# systemctl dockerを起動します [root@localhost ~]# systemctl docker を有効にする /etc/systemd/system/multi-user.target.wants/docker.service から /usr/lib/systemd/system/docker.service へのシンボリックリンクを作成しました。 [root@localhost ~]# docker version //Dockerバージョンを表示 クライアント: バージョン: 1.13.1 APIバージョン: 1.26 パッケージバージョン: docker-1.13.1-75.git8633870.el7.centos.x86_64 Goバージョン: go1.9.4 Gitコミット: 8633870/1.13.1 作成日: 2018年9月28日金曜日 19:45:08 OS/アーキテクチャ: linux/amd64 サーバ: バージョン: 1.13.1 API バージョン: 1.26 (最小バージョン 1.12) パッケージバージョン: docker-1.13.1-75.git8633870.el7.centos.x86_64 Goバージョン: go1.9.4 Gitコミット: 8633870/1.13.1 作成日: 2018年9月28日金曜日 19:45:08 OS/アーキテクチャ: linux/amd64 実験的: 偽 サーバーとクライアントに分かれている 3.Dockerイメージの操作 (1)ミラーを検索する(前提条件:コンピュータがインターネットにアクセスできる) [root@localhost ~]# docker search dhcp インデックス 名前 説明 星 公式 自動化 docker.io docker.io/networkboot/dhcpd DHCP サーバーを実行するのに適しています... 43 [OK] docker.io docker.io/joebiellik/dhcpd Alpine Linux 15 上で動作する DHCP サーバー [OK] docker.io docker.io/gns3/dhcp dnsmasq 3 を使用した GNS3 用の DHCP コンテナ [OK] docker.io docker.io/instantlinux/dhcpd-dns-pxe 小さな Alpi から DNS、DHCP、TFTP を提供します... 2 [OK] docker.io docker.io/ictu/dhcpd-tftpd dhcpd tftpd コンテナ 1 [OK] docker.io docker.io/marcelwiget/dhcptester シンプルな DHCP クライアントシミュレーション (2)画像の取得 [root@localhost ~]# docker pull docker.io/network/dhcpd //上記の先頭にあるdhcpをダウンロードします 別の方法は、ダウンロードしたdhcpを挿入することです CDを作成してホストに挿入する [root@localhost ~]# /dev/cdrom /media/ をマウントします [root@localhost ~]# cd /media/ [root@localhost メディア]# ls DHCP [root@localhost メディア]# cp dhcp / [root@localhost メディア]# [root@localhost /]# docker load < dhcp fccbfa2912f0: レイヤーをロード中 116.9 MB/116.9 MB e1a9a6284d0d: レイヤーをロード中 15.87 kB/15.87 kB ac7299292f8b: レイヤーをロード中 14.85 kB/14.85 kB a5e66470b281: レイヤー 5.632 kB/5.632 kB を読み込んでいます a8de0e025d94: レイヤー 3.072 kB/3.072 kB を読み込んでいます e2e29955c5aa: レイヤーをロード中 12.7 MB/12.7 MB 12e14fab4dd4: レイヤーをロード中 49.15 kB/49.15 kB 47bdfd3bbf39: レイヤー 4.096 kB/4.096 kB を読み込んでいます ロードされたイメージ: docker.io/networkboot/dhcpd:latest 画像をローカルコンピュータにダウンロードする (3)画像情報を見る [root@localhost /]# docker イメージ リポジトリ タグ イメージ ID //イメージ ID 作成サイズ docker.io/networkboot/dhcpd 最新 6f98b6b9b486 19 か月前 125 MB
[root@localhost /]# docker examine 6f98b6b9b486 \イメージIDの詳細を表示 イメージの詳細情報には、作成時間、システム バージョン、ホスト名、ドメイン名、ユーザー、ボリューム、ラベル、オペレーティング システム、デバイス ID などの情報が含まれます。 [root@localhost /]# docker タグ docker.io/networkboot/dhcpd dhcp:dhcp 最初の dhcp: 名前 2 番目の dhcp: ラベル (4)画像を削除する [root@localhost /]# docker rmi dhcp:dhcp タグなし: dhcp:dhcp 4.Dockerコンテナの操作 コンテナは Docker のもう 1 つの中核概念です。簡単に言うと、コンテナとは、イメージの実行中のインスタンス、独立して実行されるアプリケーションまたはアプリケーションのグループ、およびファイル システム、システム ライブラリ、シェル環境など、必要なオペレーティング環境です。イメージは読み取り専用テンプレートであり、コンテナはこの読み取り専用テンプレートに追加の書き込み可能なレイヤーを提供します。 (1)コンテナの作成と起動 [root@localhost /]# docker create -it docker.io/networkboot/dhcpd /bin/bash e392026ddd186d01cbd3306acae15f2f197dc9874a84ea241d347c7fe20a0946 一般的なオプション: -i はコンテナの入力を開いたままにすることを意味します。 -t は Docker に疑似端末を割り当てさせることを意味します。 [root@localhost /]# docker ps -a \\すべてのコンテナの実行ステータスを表示します。コンテナID イメージ コマンド 作成ステータス ポート 名前 e392026ddd18 docker.io/networkboot/dhcpd "/entrypoint.sh /b..." 約 1 分前 elegant_goldwasser が作成 出力情報には、コンテナ ID 番号、ロードされたイメージ、実行中のプログラム、作成時刻、現在のステータス、ポート マッピング、コンテナ名などが表示されます。ステータス列「作成済み」は、現在のコンテナが新しく作成され、停止状態であることを示します。 [root@localhost /]# docker start e392026ddd18 \\上記のIDのコンテナを起動します e392026ddd18 コンテナが起動すると、コンテナのステータス列が UP に変わり、コンテナが起動状態にあることがわかります。 (2)コンテナの運用と終了 [root@localhost /]# docker stop コンテナID (3)コンテナの進入 [root@localhost /]# docker exec -it e392026ddd18 /bin/bash ルート@e392026ddd18:/# ユーザーは作成されたターミナルを通じてコマンドを入力し、exit コマンドを通じてコンテナを終了できます。 ルート@e392026ddd18:/# ls bin core entrypoint.sh ホーム lib64 mnt proc 実行 srv tmp var boot dev etc lib media opt root sbin sys usr root@e392026ddd18:/# 終了 出口 (4)コンテナの輸出入 コンテナーが最小化されているため、一部のコマンドが使用できないため、構成のためにコンテナーからローカル コンピューターにエクスポートし、コンテナーにインポートする必要があります。 エクスポートコマンドは次のとおりです。 [root@localhost /]# docker export e392026ddd18>/etc/dhcp/dhcpd.conf 乱数はコンテナID番号です 設定用に dhcp メイン設定ファイルをエクスポートします。 インポートコマンドは次のとおりです。 [root@localhost /]# docker import /etc/dhcp/dhcpd.conf > e392026ddd18 (5)コンテナの削除 終了したコンテナを削除するには、dockerrm コマンドを使用できます。 イメージには複数のコンテナを含めることができます [root@localhost /]# docker stop e392026ddd18 \\まずe392026ddd18を停止します [root@localhost /]# docker rm e392026ddd18 \\e392026ddd18を再度削除 [root@localhost /]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 5. Docker リソース制御 Cgroup は Controlgroup の略で、Linux カーネルが提供する、使用される物理リソースを制限するためのメカニズムです。これらのリソースには、主に CPU、メモリ、blkio が含まれます。 以下では、Docker がこれら 3 つの側面での管理に Cgroup メカニズムをどのように使用するかについて説明します。 (1)CPU使用率の制限 たとえば、コンテナ 60ff4594cc73 の CPU 使用率を 20000 に設定し、CPU 使用率制限を 20% に設定します。 [root@localhost ~]# echo 20000 >/sys/fs/ cgroup/ cpu/ system.slice/docker-60ff4594cc73b5474477 636b25b41f 16e1 66a3606aed22 6522d420d0c296990d.scope/cpu.cfs_quota_us (2)複数のタスクがCPUを比例して共有する たとえば、新しく作成した 3 つのコンテナー A、B、C を実行し、CPU リソースを 1:1:2 の比率で占有するには、次のように実行します。 [root@localhost /]# docker run -tid --cpu-shares 1024 +ミラーA [root@localhost /]# docker run -tid --cpu-shares 1024 +ミラーB [root@localhost /]# docker run -tid --cpu-shares 2048 +image C 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 8.x msi バージョンのインストール チュートリアル (画像とテキスト付き)
>>: SQL Server の完全バックアップに関する珍しいエラーと解決策
質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...
docker における実行と開始の違いDocker run はミラーイメージを指定します。そしてdo...
導入データベース理論についてさらに学んでいくうちに、さまざまな分離レベルによって起こり得る問題につい...
プライベート フィルターとグローバル フィルターのメソッドと概念は同じですが、プライベート フィルタ...
目次序文Vue Nativeの機能宣言的レンダリング双方向バインディングVue.js エコシステムの...
目次1. 環境整備2. データの準備3. ショーを始める4. 単語分割エンジン要約する参考文献1. ...
システム: Ubuntu 16.04LTS 1\公式サイトからmysql-5.7.18-linux-...
目次概要オブザーバーパターンの応用シナリオオブザーバーパターンの実装要約する概要オブザーバー パター...
この記事の例では、Appleの電卓を実装するためのJSの具体的なコードを参考までに共有しています。具...
現在、MySQL を学習中です。私は完全な初心者で、Linux についてはあまり知りません。今後の作...
1.VirtualBoxソフトウェアをダウンロードしてインストールするまず、VirtualBox の...
目次fileReader に関する落とし穴iOS における FileReader の落とし穴 (イメ...
プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...
非同期レプリケーションMySQL レプリケーションは、デフォルトでは非同期です。マスター スレーブ ...
Web デザインでよく耳にするプロパティ名: content、padding、border、marg...