【初心者〜現場で活躍まで】挫折しないPython勉強方法もっと知る

【10分で理解】初心者向けにDockerの便利さを分かりやすく解説

【10分で理解】初心者向けにDockerを解説
  • Dockerっていう言葉を最近よく聞くけど、よく分からない
  • Dockerって何が便利なの?
  • コンテナってよく聞くけど、何?

今回は、そんな疑問に答えます!

Dockerは、今や初心者であっても、絶対に習得したいスキルの一つです。

この記事を読めば、Dockerについて怖がらずに話せるようになります。是非ともこの機会にDockerの概要Dockerを使うことで得られるメリットだけでも覚えて帰って下さい!

目次

開発環境を構築することは非常にハードルが高い

開発環境構築での失敗

Dockerについて理解するため、あなたに質問です。

自分のPCに開発環境を準備しようとした時に、以下のような経験はないでしょうか?

開発環境構築での失敗
  1. インストールしようと、インストーラーを実行したら、エラー発生
  2. 苦労しながらエラーメッセージを見て、何とか解決
  3. その後、インストーラーを再実行したら、今度は違うエラーが発生
  4. うんざりして、辞めてしまう
  5. もう一生やらない

エンジニアであれば、あるあるの話です。環境構築は、スタートラインに立つための作業ですが、実はハードルが高い作業です。

バージョンの違いとか、プログラムとの依存関係とか、そもそも手順を間違えたとか、様々な要素でエラーが発生してしまい、スタートラインにも立てずに、諦めてしまう初心者が多いです。

また、初心者に開発環境の構築を指示する人にとっても、悩みがあります。

開発メンバーのみんなに環境構築をお願いしたら、それぞれ違うエラーを持ってきて、一個一個解決するのは、とても労力がいります。わざわざ、手順書を用意するのもめんどくさいです。

あー、何か良い仕組みがないものかなぁ?」と思いながら、エラーを一つずつ潰して、環境構築を行っていました。

Dockerが誕生する前までは。

Dockerが便利な理由

Dockerの最大の便利さは、上記のようなバージョン差異などの環境差異をなくして、手軽に環境構築が出来るようになったという点です。

地味に感じるかも知れませんが、これは凄いことです。

「Docker for Windows/Mac」をインストールして、「Dockerfile」と呼ばれるファイルに「プログラムが動くための依存関係や設定」を書き、コマンドをいくつか叩くことで、環境構築が出来るのです。

ということは、Dockerfileを一度作ってしまえば、それをチームメンバーに渡して、「このコマンド叩いといて」と言えば、すぐに開発環境が出来るのです。

図にすると以下のような感じです。

Dockerがあれば、簡単に環境のコピーが可能

Dockerfileが設計書となるので、わざわざインストール手順書を作成する手間も省けます。

Dockerが便利な理由

初心者の方は、Githubとか、会社の先輩とかから取得したDockerfileを利用して、コマンドを打つことで、同じ環境がすぐに出来上がるのです。

Dockerの概要 〜コンテナとは何か?〜

Dockerについて知るためには、コンテナ技術について知ることが重要です。以下からは、コンテナについて話します。

Dockerとはエコシステムの総称である

Dockerの便利さが何となく分かったところで、もう少し技術的な概要について説明します。

Dockerとは、「コンテナを作ったり、動かしたりするためのエコシステムの総称」です。具体的には以下の図のようになります。

Docker Ecosystem

エコシステムとは、日本語で直訳すると「生態系」という意味となります。

要するに、「Dockerは色々な技術を組み合わせて、それぞれが繋がり合って、コンテナを作ったり、動かしたりが可能になる大きなシステムのことである」ということです。

コンテナ技術とは何か?

ここからはコンテナ技術について、解説をさせていただきます。Dockerはコンテナ技術を使っているので、理解が必要です。

まず、身近にあるもので考えてみましょう!意外と身近なものに例えて技術用語を覚えることで、頭に入るものです。

コンテナ

上記の写真に写っているもの、何かお分かりでしょうか?そう、輸入された物資を船で運ぶために使う「コンテナ」です。

このコンテナには何が入っているのでしょうか?あるコンテナにはバナナが入っていたり、あるコンテナには小麦が入っていたり、またあるコンテナにはチョコレートが入っているかも知れません。

コンテナはバラバラの物資をまとめて、船で運ぶために使われます。また形が四角いので、いっぱい積むことが出来ます。

ここでいうコンテナ技術も、上記の貨物で使うコンテナも役割としては同じです。

コンテナとはプログラム実行環境が入った箱なのです。

例えば、あるコンテナにはバックエンドで使うRubyの実行環境が入っていて、あるコンテナにはフロントエンドで使うReactの実行環境が入っていて、あるコンテナにはDBであるMySQLが入っている。

そして、「実は船がOSの役割を担っているので、それぞれのコンテナを直接操作することが出来る」のです。

ここまでの話を踏まえて、Dockerの公式ロゴを見てみると、以下のようになっています。

Dockerのロゴを見ると、Dockerでできることが分かる

クジラがコンテナを運んでいるロゴになっています。

Dockerは実行環境をまるごとコンテナという箱に入れて、持ち出すための技術なのです。

Dockerfileでコンテナを作る

次は、「コンテナはどうやって作って、動かすのか」という話です。

上記では、Dockerfileを他のエンジニアに渡すと、開発環境が出来ていました。

Dockerがあれば、簡単に環境のコピーが可能

コンテナを作るためにはDockerfileが必要なのです。具体的には以下のようになります。

Dockerでコンテナを作る手順
  1. Dockerfilemにイメージと呼ばれるコンテナの発注書のようなものを書いて、イメージをビルドする。
  2. イメージを元にコンテナが出来上がり、それを実行することでコンテナが起動する。

図にすると、以下のような感じになります。

Dockerでコンテナを作る手順

Dockerfileの使い方については、以下の記事がおすすめです。

結論

今回は、Dockerの概要と、Dockerが便利な理由を書かせて頂きました。

まとめると、以下のような感じです。

この記事の結論
  • Dockerを使うことで、環境構築が凄く楽になる。
  • Dockerの技術コアはコンテナ技術である。
  • コンテナとはプログラムの実行環境が入った箱である。
  • Dockerfileからイメージをビルドして、コンテナを起動することで使えるようになる。

ここまで記事を読んで、Dockerを使いたくなってきたでしょうか?

少しでもDockerについて、理解して頂き、興味を持って頂けたら幸いです。

以下は参考書籍です。

¥3,644 (2024/11/13 15:11時点 | Amazon調べ)
¥70 (2024/11/12 23:21時点 | Amazon調べ)

ここまでお読みいただき、ありがとうございました。

役に立った、面白かったと思ったら、SNSでシェアしてくれると嬉しいです。

エソラ

もし分からないことがあれば、お問い合わせTwitterにご連絡をいただけると嬉しいです。(Twitterの方が返信早いかも…)

\ 更新の励みになるので、ポチッとしてね /

エソラ

他にもスキルアップやキャリアアップの役に立つ情報が満載です。他の記事も読んで、ゆっくりしていってね!

【10分で理解】初心者向けにDockerを解説

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (5件)

コメントする

目次