GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Dockerとは、DockerとVMの違い、Dockerのインストールとその使用法

以前は、Xenのようなハイパーバイザーやopenstackのようなクラウドミドルウェアのインストールを見てきました。最近、docker containerと呼ばれる新しいテクノロジーが、アプリケーション開発で最も注目されているトレンドになっています。この記事では、Dockerとは何か、仮想マシンとの違い、Dockerのインストールとその使用法について説明します。

Dockerとは何ですか?

Dockerは、実行に必要なすべてのもの(コード、ランタイム、システムツール、システムライブラリなど、サーバーにインストールできるものすべて)を含む完全なファイルシステムにソフトウェアをラップするコンテナーです。コンテナはオペレーティングシステムレベルで仮想化されるため、システムリソースの使用においてハイパーバイザーよりも効率的です。 LXC、Dockerなどの多くのLinuxコンテナテクノロジーがあります

Dockerと仮想マシンの違いは何ですか?

アーキテクチャのアプローチが異なると、コンテナは同様のリソース分離を備えていても、はるかにポータブルで効率的です。下の写真は、コンテナと仮想マシンのアーキテクチャの違いを示しています。

仮想マシン コンテナ 1。ハイパーバイザーと完全なOSが内部に必要 1。ホストカーネルと通信します 2.より大きなフットプリント(RAMとストレージスペース) 2.フットプリントが小さい(RAMと差動ストレージがない) 3. VMは、インスタンスごとに最大1.2GBのストレージスペースを消費します 3.消費するスペースが非常に少なくなります〜2.5MB 4。重い 4。軽量 5.仮想マシンの起動時間は数分程度です 5.起動時間は秒単位です 6。展開は困難です。 6。アプリケーションを実行するための最小限の要件で簡単に導入 7.遅い 7。高速 8.OS実行時のセキュリティ問題 8.セキュリティの問題はアプリケーションに限定されています

CentOS7にDockerコンテナをインストールする方法

Dockerの最新の公式リリースはv1.10です。以下の手順は、CentOS7サーバーにDockerコンテナをインストールするためのものです。ルートとしてCentOS7サーバーにログインし、以下の手順に従います。

ステップ1: ベストプラクティスとして、以下に示すように、yumを使用してシステムを更新しましょう。

# yum -y update

ステップ2: デフォルトでは、DockerはCentOS-Extraリポジトリに含まれています。最新バージョンのDockerを使用する場合は、以下のコマンドを実行してリポジトリに追加します。

# tee /etc/yum.repos.d/docker.repo <<-'EOF'
 > [dockerrepo]
 > name=Docker Repository
 > baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 > enabled=1
 > gpgcheck=1
 > gpgkey=https://yum.dockerproject.org/gpg
 > EOF
 [dockerrepo]
 name=Docker Repository
 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 enabled=1
 gpgcheck=1
 gpgkey=https://yum.dockerproject.org/gpg

ステップ3: dockerpackageとdocker-registryをインストールします。 Dockerレジストリは、Dockerイメージを保存して配布できる、ステートレスで拡張性の高いサーバー側アプリケーションです。

# yum -y install docker docker-registry

ステップ3: dockerが正常にインストールされたら、dockerサービスを開始します。

systemctl start docker.service

ステップ4: 次のコマンドを使用して、起動時にdockerサービスが開始されることを確認します。

#  systemctl enable docker.service

ステップ5: Dockerサービスを確認する

systemctl status docker.service
docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago
 Docs: http://docs.docker.com
 Main PID: 30108 (docker)
 CGroup: /system.slice/docker.service
 ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04
 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0"
 Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e"
 Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n"
 Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0"
 Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e"
 Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n"
 Hint: Some lines were ellipsized, use -l to show in full.

Dockerの使用方法?

ステップ1: Dockerコンテナをダウンロードします。以下のコマンドを実行して、最新の安定した公式CentOSイメージを取得します。

# docker pull centos

上記のコマンドは、最新の安定したcentosリリースをプルします。 CentOS 6など、他のバージョンのCentOSイメージをプルするには:

# docker pull centos:centos6

ステップ2: 画像がローカルにダウンロードされていることを確認するには:

# docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB

ステップ3: 利用可能なすべてのダウンロード画像を一覧表示するには:

# docker images

Dockerコンテナを実行する方法

ステップ1: 基本的なCentosコンテナをbashシェルで実行します。ここで、 -i オプションはstdinを添付します およびstdout -t ttyを割り当てます 。

# docker run -i -t centos /bin/bash

それでおしまい!これで、centosdockerコンテナ内のbashシェルに着陸しました。

Dockerコンテナを操作するためのコマンド

1.コンテナをシャットダウンせずにコンテナから切断または切り離すには:

Ctrl-p + Ctrl-q

2.コミュニティですでに利用可能なコンテナはたくさんあります。コミュニティからコンテナを一覧表示するには:

# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. 2042 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK]
docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK]
...
...
# docker search ubuntu
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK]
docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK]
docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK]
...
...

3.すべてのコンテナを一覧表示します

# docker ps -a

4.実行中のコンテナのみを一覧表示します

# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare

5.コンテナを停止する
上記のリストからコンテナIDを取得し、それを使用してそれぞれのコンテナを停止します。

# docker stop 4293c8265d00

6:Dockerサービスを再起動します

# systemctl restart docker.service

Docker
  1. DockerイメージのCMDとENTRYPOINTの違い

  2. DockerfileのCOPYとADDの違いは何ですか?

  3. arm64 と armhf の違いは何ですか?

  1. fsck と e2fsck の違いは何ですか?

  2. ls と l はどう違いますか?

  3. 「su -」と「su --login」の違いは何ですか?

  1. InnoDBとMyISAMの違いは何ですか?

  2. LXC、LXD、Dockerコンテナの違いは何ですか

  3. podmanとdockerの違い。