背景
自学でDockerを勉強したあと、Dockerを使ってサーバを構築してサイトの構築に至りました。今回はこの一連作業の起点から当時の勉強資料と自分のメモを整理してみます。
1. Dockerについて
初心者の方でもなんとなくわかるように、細かいところは抜きにして。
1-1. Dockerの価値、解決した問題
プロジェクトを本番環境にデプロイする場合、環境配慮のミスでプロジェクトがうまく稼働できない場合はありますね。
また、同じプロジェクトを複数台の端末、或いはクラウド上に配置する場合、その分の環境の構築も必要になります。プロジェクトの可用性と構築効率性の問題を解決するために、「コンテナ」という概念が生まれた。
コンテナの代表として、Dockerの利用は近年からかなり増えてきます。
Dockerはクラウドサービスとの相性が相性がよく、コンテナ1個をクラウドにデプロイすると、サービスがすぐ(秒単位)利用できるようになります。
クラウドなので、地域と時間の制限はなく、どこでも、いつでも、Dockerを利用してサービスを追加したり、退去したりすることはできます。
1-2. Dockerのビージョン
Docker は、Go 言語に基づくクラウド オープン ソース プロジェクトです。
Docker の主な目標は、「Build,Ship and Run Any App,Anywhere」のことです。これは、ユーザーの APP (WEB アプリケーションまたはデータベース アプリケーションである可能性があります) など) とその動作環境を「1回のみのイメージ作成、どこでも稼働できる」。
👆「https://slideplayer.com/slide/15134923/」による
1-3. コンテナと仮想マシン
Docker と従来の仮想化の違いを比較してみます。
- 従来の仮想マシンは、一連のハードウェアを仮想化し、その上で完全なOSを実行してから、システム上で必要なアプリケーション プロセスを実行することです。
- コンテナー内のアプリケーション プロセスは、ホストのカーネル(Linuxカーネル)上で直接実行され、コンテナーには独自のカーネルがなく、且つハードウェアの仮想化を実施しません。 したがって、コンテナーは従来の仮想マシンより移植性が高くなります。
- 各コンテナは互いに分離されており、各コンテナには独自のファイル システムがあり、コンテナ間のプロセスは互いに影響を与えず、リソースを別々に計算できます。
構造上の違い
1-4. Dockerの公式サイト
👇Docker公式サイト
https://www.docker.com/
👇Docker Hub公式サイト(各種類のイメージを格納する場所)
https://hub.docker.com/
コメント欄