1
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?

Dockerについてざっくりメモっていく

Posted at

個人的メモ。
厳密なことは書かない。

コンテナとハイパーバイザの違い

ハイパーバイザは以下のようなイメージ
growi-ページ40.drawio.png

これをAWSのEC2に置き換えるとこうなる
growi-ページ44.drawio.png

コンテナを使うとゲストOSを無くして仮想化環境を用意することが出来る。それぞれのコンテナ(アプリ)はホストのOS(カーネル)を共有して利用している。但し、それぞれのコンテナはNamespace等を使って仮想的に分離されているからお互いに影響を与える可能性は限りなく低い。また、cgroupを使って各コンテナが使用できるホスト側のCPUやメモリ等を制限することも可能。

OSは基本的にLinux系になる(WindowsでもDocker DesktopがあるがWindows Subsystem for Linux(WSL)を使っている時点でLinuxに依存したシステムだと思う。)
growi-ページ41.drawio (1).png

暴論になるかもだけど、WindowsPCがあって、その上で様々なアプリを動かしたとする。
メモリは32GBを積んでいるPCと想定。
growi-ページ42.drawio.png

コンテナ(NamespaceやCgroup)で仮想化するという事はこのアプリ同士を秘匿化(お互いが見えない)しつつ、メモリの使用量をそれぞれのアプリで明確に分けるという事。
growi-ページ43.drawio.png

コンテナ周りの技術

volume

コンテナは一度消えてしまうと、コンテナが生成したデータも消えてしまう。
growi-ページ46.drawio.png
volumeはホスト側のストレージ(SSDとかHDD)にDockerのデータを格納するためのやつ。
マウント的なイメージを個人的には持っている。
growi-ページ47.drawio.png

network

デフォルトだとコンテナを導入した内部はこうなっている。
仮想的なBridgeを作って、それぞれのコンテナはそれに紐づいている。またこのBridgeはNICとも紐づいている。だから外部ネットからコンテナにアクセスすることが出来たりする。
growi-ページ48.drawio (1).png

こういうことをしたり
growi-ページ49.drawio (1).png

こういうことをすることも可能
Docker SwarmはKubernetesを勉強したいなら先に触ってみるといいと思う。
growi-ページ50.drawio (1).png

レジストリ

DockerだとDocker Hub。Docker Imageがたくさん置いてある。
本当にざっくりいうなら、ISO的なものがたくさん置いてある場所。

growi-ページ51.drawio (1).png

以下はUbuntuの公式イメージ
docker pull ubuntuを実行するとこいつをローカルに引っ張ってくる

image (28).png

Dockerfile

イメージを作成するためのレシピ的なヤツ。
イメージのOS、ミドルウェア、アプリを定義する。
デプロイしたコンテナに入って設定を入れ込んで、それをイメージ化することで再利用することも出来るが、本当であればこっちに全部記述したほうがいい。
バージョン管理やドキュメントとしての役割を果たせるようになる。

今後随時更新予定

1
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
1
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?