9
15

More than 1 year has passed since last update.

もう逃げない。基礎から学ぶDocker入門 / Dockerの概要(1/9)

Last updated at Posted at 2021-09-23

はじめに

今まで、全然理解できていなくて逃げてたDockerに関して、しっかり理解していこうと思います。

コレまで、便利なんだろうなと思いながらも、逃げてました。

なので、開発環境では使いこなせるスキルにまでは理解したいと思います。

あと、暗記してたDockerコマンドを1つ1つ理解していきます。

以下のような順番で勉強していきます。

Dockerとは何か

  • Dockerはコンテナ技術を利用して、アプリケーションの実行環境を構築したり、運用したりするためのプラットフォーム
  • アプリケーションの実行に必要なものをまとめてDockerイメージとして管理できる
    • そうすることで、以下のメリットがあるらしい
      • 自分のローカルPCや、AWS上で構築されたステージング環境や本番環境でも同じように動作する

image.png

参考

冒頭に出てきた、コンテナ技術とDockerイメージは何か?

解説します。

コンテナ技術とは

コンテナとは、ホストOS上に他のプロセスから隔離された論理的な区画(コンテナ)を作って、そこにアプリケーションを実行させるのに必要な環境(ライブラリやアプリケーションなど)を1つにまとめ、個別のサーバー(コンピュータ)のように動作する技術のことです。

IMG_BCA7974E5451-1.jpeg

ホストOSのリソースを論理的に分離し、複数のコンテナで共有して使用しているそうです。

コンテナはオーバーヘッド(付加的な処理 / 負荷)が少ないらしく、軽量で高速に動作するのが特徴らしい。

コンテナ技術を使うと、OSやディレクトリ、IPアドレスなどのシステムリソースを、個々のアプリケーションがあたかも存在しているように見せることができます。

Dockerイメージとは

Dockerでは、コンテナを作成するためのライブラリやアプリケーションの情報を1つにまとめて、それをDockerイメージとしてデータを持てます。

そのDockerイメージをもとにコンテナを作成することができます。

image.png

参考

Webシステムの開発におけるDockerの役割

Webのシステム開発において、アプリケーションを本番環境で実行・運用させるためには、以下のようなシステムが必要になります

  • アプリケーションの実行モジュール(プログラム本体)
  • ミドルウェアやライブラリ群
  • OS・ネットワークなどのインフラに関する環境設定

Dockerでは、これらのインフラの環境をコンテナ単位で管理し、アプリケーションの実行に必要な全てのファイルやディレクトリなどをコンテナとして1つにまとめます。

このコンテナのもとになるDockerイメージを Docker Hub などのレジストリ(設定情報のデータベース)で共有できます。

Dockerイメージは、Dockerがインストールされている環境であればどこでも動作させることができます。

これが、自分のローカルPCや、AWS上で構築されたステージング環境や本番環境でも同じように動作するしくみです。

これにより、異なる環境でも、同じDockerイメージを使用することで、環境ごとに挙動が異なるリスクを減らすことができます。

以上です。

アウトプット100本ノック実施中

9
15
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
9
15