LoginSignup
0
0

More than 1 year has passed since last update.

Dockerとは何なのか?それについて学びつつ、学んでみる。その1

Last updated at Posted at 2021-06-05

現場でDockerを使う現場で作業したことはあるが仕組みが曖昧で、完全に理解したわけではないので参考書を読みつつ、初心に戻り、まとめてみることにしました。

本来のシステムや機能の仕組み

本来、システムや機能は、以下のようにサーバー内にいろんなフレームワークだったり、様々なプログラムやソフトウェアが存在していて、動いています。

スクリーンショット 2021-06-05 12.39.36.png

そして、それらはそれらを動かすための実行環境だったり、他のプログラムを元に動いていたりすることがあるのです。

Apache MySQL Nuxt.png

また、システムやソフトウェアは共通の実行環境だったり、ライブラリを使用していることだって少なくありません。
そして各々のシステムが作動するversionが決まっていることもあり、共通のプログラムがそれに対応していないと、一部のシステムが動かなくなってしまいます。

Apache MySQL Nuxt (1).png

Dockerは一つのサーバーに複数の実行環境を構築するもの

こういった問題を解決するものとして、Dockerというものがあります。

Dockerとは、サーバー内の様々なシステムやプログラムの実行環境をシステム・プログラムごとに作成できるシステムです。

つまり、一つのサーバーに
○Laravelなら、PHPの実行環境
○Nuxtなら、Nodeの実行環境
を構築することができ、システムにあった環境を用意することができます。

そして、その実行環境のことを「コンテナ」と言います。

Apache MySQL Nuxt (3).png

そして、そのコンテナの種類のことを「イメージ」といい、コンテンはイメージをもとに作成されます。
Apache MySQL Nuxt (4).png

DockerはLinuxで動く

DockerはLinuxで動くので、Dockerの操作をするとき(Dockerを起動する、Docker内のコンテナを移す、削除するetc...)はLinuxのコマンドで操作したりします。

そもそもサーバとは

そもそもサーバって何なのかも合わせて調べてみました。

サーバとは英語で書くと、「Server」と書き、Serve(割り当てる、給仕する)という動詞から成り立っている言葉であり、これの名詞型になるとサービス(Service)となります。

つまり、サーバとは何かを提供するものということです。
○「Webサーバ」と言えば、Web関係の機能が格納されたサーバ
○「メールサーバ」と言えば、メール関係の機能が格納されたサーバ
というように。

そして、サーバは大きく分けて、
○総合的なサーバ
○部分的なサーナ
の2つに分けることができます。

Apache MySQL Nuxt (5).png

Dockerの構造

まずは復習として、Dockerは大体以下のような構造になっています。
Apache MySQL Nuxt (7).png

もともと使用しているサーバーOSがあり、そのサーバーOSはLinux OSで作動し、さらにその上でDockerがあるのです。

そして、Dockerのコンテナの中には、コンテナごとのそのコンテナ専用のLinux OSが存在しています。

ちなみに、OSとは「Operating System(オペレーティング・システム)」の略で、ユーザの命令をシステムや機械に伝えるものです。

世の中の機械やシステムは単純であり、人間のように思考回路があるわけではないので、人間のしたいことを伝えてもそのままでは、機械は理解できません。

つまり、OSとは、人間の言葉を機械に変換するためのものなのです。

以上、まずは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