0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerの基本

Posted at

まえがき

Dockerについてざっくり理解できたのでメモ。
他にも学んだことはここに追加していく・

Dockerとは複数のプログラムを隔離する仕組み

これにより同じサーバー内でも複数のプログラムを隔離できる仕組み。

これにより同じ環境内に複数のプログラムを配置しなくていい。

従来の環境

従来ならば同じサーバー、すなわち同じ環境内に複数のソフトウェアを配置していた。

99AD1B73-3AF3-4EEB-831D-83CE86B69C51.jpeg

Dockerの環境

Dockerを使えば同じサーバー内でも、複数の独立した環境を作る事ができるので、ソフトウェアを独立させる事ができる。

71DE5B4C-5000-41E1-A682-504AE4CBC16A.jpeg

Dockerはサーバー上で使用される

基本的には。クライアント側でも使えるが、Dockerはサーバー側で使われる事がほとんど。

サーバーの2種類の意味

  • 機能的な意味のサーバー(Webサーバー、メールサーバーなど)
  • 物理的な意味のサーバ(目に見える、机に置いてある)

そして物理的なサーバーの中に機能的なサーバーを複数含めることができる。

サーバーの機能はソフトウェアで決まる

サーバーにApacheをインストールした場合、ApacheはWebサーバーの機能を提供するソフトなので、Webサーバーになる。メール機能のソフトをインストールした場合、メールサーバーになる。

Webサーバーの機能のソフトと、メール機能のソフトをインストールするとWebサーバー兼メールサーバとなる。

DockerEngineとコンテナ

  • コンテナとは独立した環境を実現する箱。箱の中に好きなソフトウェアを入れることで独自の環境を作ることができる。またコンテナという箱のおかげで周りの世界から切断されるので、独立した環境を実現してくれる。
  • コンテナは容量が許す限り、いくらでもおける。

1DD43844-69AD-4A3C-80CC-B4F5D80526A9.jpeg

コンテナはイメージから作られる

イメージとはコンテナの設計図。イメージからコンテナが作られる。

26D3D83D-6C97-4287-89E8-BCAD9D59BFC5.jpeg

サーバー用のOSはLinux系が多数

  • LinuxかUnix系がサーバー用のOSとして選ばれることがほとんどである。
  • なのでサーバー用のソフトウェアもLinux上で使われることを想定したものが多い。
  • こうした理由からDockerはLinux上でしか動かない。

DockerはLinuxを必要としている。

Linux用に作られたソフトウェアしかコンテナに入れることができない。仮にコンテナに入れれたとしても、動かない。

29927A9B-B4EB-43F5-8ACD-94BB987F591D.jpeg

コンテナは持ち運べる

Dockerさえ入っていればどんな環境でも大丈夫。OSが違っていてもいい。

Dockerがあれば他のハードウェアでも超簡単に環境を揃えることができる。

40B1AF46-8F91-49B9-8C62-4E96F9235091.jpeg

複数のプログラムを隔離するメリット

同じ環境内に複数のプログラムを配置することの何が良く無いのか。

同じ環境内に複数のプログラムを配置した場合

ソフトAとソフトBがあるとして、共通のライブラリに依存しているとする。

ソフトAをアップデートして、依存ライブラリのバージョンが8以上でないと動かなくなったとする。そしかしソフトBは依存ライブラリのバージョンが7以下でないと動かないとする。片方のアプリケーションが壊れてしまった。

このようなケースを考えると複数のソフトウェアが同じ環境に存在するのは安全ではないと言える。

02927067-7415-48A9-B6BF-63A6AC7E2D4B.jpeg

Dockerを使ってコンテナを隔離した場合

Dockerを使ってコンテナ(環境)を分けた場合、それぞれのコンテナにライブラリをインストールする事ができる。依存ライブラリのバージョンが8.0以上じゃないと動かない場合は、ソフトAのコンテナに8.0以上 のバージョンをインストールすればいい。ソフトBの方はバージョン5.0以下しか動かないので、バージョン5をインストールすればいい。このような仕組みによって、アップデートによってアプリケーションが壊れる事がなくなった。

97D6B8A3-0FE0-415C-9E1F-A0FF13F0BAF7.jpeg

Dockerを使わなくても解消できる方法

Dockerでコンテナを分けなくても、もう一台のサーバーを購入できれば、この問題は解決できる。

しかし莫大なコストがかかる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?