【docker】docker概要について
こんにちは!
udemyのセールの際にdockerの動画を購入しました。
pyhtonスタートアップののdockerイメージをあげただけですが、今回はdockerの概要について備忘録(自分用のまとめ)をします。
■Dockerとは
Dockerはコンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのコンテナ型仮想化ソフト
■仮想化とは
1台の物理マシン上に仮想マシンを用いて複数のOSを立ち上げること
■従来の仮想化との違い
ハイパーバイザ型仮想サーバと比較してみます。
①ハイパーバイザ型仮想化
1台のホストマシンに、仮想化管理ソフトを入れて複数の仮想化ゲストOSを入れます。(ホスト:WindowsにゲストOS:Linuxを入れて必要な環境設定から全て行うイメージ)
そのため動作が遅くなります。
②コンテナ型仮想化(docker)
1台のホストマシンに複数コンテナが入ります。コンテナにはOSはありません。
コンテナのプログラムの実行はホストマシンが行います。
※Linux以外の環境では動作しません。Windows使用の場合は仮想Linuxサーバを作成してその上で使用することができます。
コンテナ「Docker hub」にDockerイメージがありますので、そこから入れたいDockerイメージを追加します。
動作が軽量で、イメージを追加するだけで環境が整うため楽です。また、イメージを自分で編集して使用することも可能です。
・dockerイメージ
例えばOSやrailsをインストールしようとするとOSのイメージ・railsのイメージをビルドします。
・ベースとなるイメージを「ベースイメージ」という
「Docker hub」にはUbnutu,CentOSなどのOSイメージからOracleDatabase,MysqlなどのDBやWEBサーバ、pythonなどの基になるイメージが配布されています。
・追加していったイメージは「レイヤ」という
最初はOSイメージからインストールしていき、必要なイメージを追加していきます。OS・WEBサーバ・DBなどレイヤを追加していきます。
レイヤを追加していき、自分用のコンテナを作成できればそれをイメージとして自身のDockerHubにアップロードし、次回から同じイメージを使用できます。
また、元から必要なイメージがセットになったイメージも配布されています。
参考
https://blog.codecamp.jp/programming-docker-image-container
・ビルド(build)
Dockerファイルを使ってDockerイメージを構築する方法
・Dockerfile
Docker上で行うコマンドをまとめて記述し、実行することができます。
Dockerfileの情報を基にしてdocker buildでDockerイメージを作成します
※用語集
http://docs.docker.jp/glossary.html#build
まだまだ未熟ですが間違いありましたらご指摘くださいませ🙇♀️
コマンドなどは複雑で多いため、習得したら追記していきます😦
参考にさせていただきました
https://kitsune.blog/docker-summary
https://knowledge.sakura.ad.jp/13265/
↓コマンドラインも参考にさせていただいています
「自宅ではじめるDocker入門―人気のコンテナ型「仮想化ソフト」を使ってみる!」