こんにちは、インフラエンジニアのryuです。
今回は、Dockerとは何かを初心者向けにわかりやすく解説します。Dockerはコンテナ技術を実現するためのソフトウェアです。Dockerはインフラエンジニア以外の方も知っておくべき技術です。インフラを使ったことの無い方にもわかりやすく解説します。
目次
Dockerとは?初心者向けにわかりやすく解説
Dockerって聞いたことあるけど、よくわかんないんだよね~
Dockerはシステム開発する人なら全員知っておくべき内容です!
インフラを触ったことの無い方でも分るように解説します!
今回の記事では、Dockerの概要と最初のセットアップについて詳しく解説します。Dockerの詳しい使い方は今後の記事で随時アップしていきます。
説明の前に、なぜDockerはシステム開発する人なら全員知っておくべき内容なのでしょうか?
Dockerを使うとシステム開発が圧倒的に早くなる!?
Dockerを使うとシステム開発が効率的に行えます!なので、プログラマーの方はDockerの環境で開発をしてもらいます!
どういうこと?
なんでDockerの環境で開発?
今から、Dockerを使うメリットについて詳しく解説します。ここを読むとDockerがどのようなものなのか概要を理解することができます。
まだDockerの環境でシステム開発を行っていない方も、今後は必ずDockerが取り入れられるので、ぜひ覚えておきましょう!
メリットが分かりやすいようにDockerを導入する前と後で比較してみましょう。
Dockerを導入する前の開発スタイル
Dockerが導入される前はどのような環境でシステムを開発していたでしょうか?下記の会話から確認してみましょう。
システムを開発するときはどのPCでコーディングしていましたか?
えーと、自分のMacのパソコンです。
では、アプリが完成したら、サーバー(本番環境)にリリースしますよね?そのサーバーのOSは?
Linux使っています!
本番環境へリリースしたとき正常に動作する?
いや・・・
本番環境ではアプリ動かなくて修正することが多々あります・・・
このように、開発環境で動作していたアプリが本番環境にリリースされると動かなくなるということは多々あります。
なぜなら、開発環境と本番環境が違うからです。例えば、開発環境は開発者のPC(MacやWindows)を使用し、本番環境はLinuxサーバーやWindowsサーバーを使うことがあります。OSに依存する設定がある場合、別の環境に移動した際に動かなくなります。
つまり、開発環境で開発していたアプリを本番環境にリリースするためには、その環境に合わせてプログラムを修正する無駄な工数が発生してしまいます。
その無駄な工数を無くしてくれるのがDockerです!
Dockerを導入するとどうなるの?
先ほどまで、Dockerを導入していない開発スタイルを説明しました。では、Dockerを導入するとどうなるのでしょうか?
結論は、全員が同じ環境を簡単に作成できるようになるということです。
どういうこと?全く分からん!
安心してください!簡単に分かりやすく説明します。
そもそもDockerとは何なのでしょうか?
Dockerとは、コンテナ化型の仮想化技術のことです。簡単に言うと、サーバーなどの設定をコンテナーに一つにまとめる技術のことです。
具体的に言うと、プログラムのバージョンやインストールするモジュールなどを一つにまとめることです。イメージは以下のような感じです。
設定がまとまったこのコンテナを使うと環境を切り替えたときに動かなくなる不具合が無くなります。
コンテナはDocker上で動作します。そのため、開発環境から号口環境に切り替えた際に、Dockerという共通の基盤があることで、環境の違いによる不具合を無くすことができるのです。
つまり、環境に切り替えによる無駄な工数が無くなります。
ではなぜ、Dockerを使うとそのようなことができるのでしょうか?ここからは、Dockerの構成について解説していきたいと思います。構成を知るとさらに理解が深まります。
Dockerの構成とは?
Dockerを使うと、環境を切り替えが簡単ということが何となく分かったけど・・・どういうこと?
Dockerの構成を理解するとさらに理解できます!
ここからは、Dockerの構成についての説明をしています。しかし、Dockerの構成をいきなり説明しても、よく分からないと思うので、Docker無しの場合を考えてみましょう。
Dockerをインストールしていない場合の開発環境
まず、Dockerをインストールしていない開発環境を考えてみます。例えば、pythonを使ってアプリを開発するとしましょう。
pythonのプログラムをPC上で動作させるためには、pythonをインストールする必要があります。そして、pipコマンドを使ってモジュール等をインストールして、コーティングをしていきます。
ここまでの流れを図にすると以下のようになります。
ここから、本番環境のLinuxサーバーに開発したアプリをリリースしてみましょう。どうなるでしょうか?
この図のように、開発PCと号口サーバーでは環境が全く違います。例えば、違うバージョンのpythonがインストールされてたということです。バージョンが違うことでアプリが動作しなくなるのはよくあります。
では、Dockerをインストールするとどうなるのでしょうか?先ほど説明したコンテナという技術でこれらの問題を解決することができます。
Dockerをインストールした場合の構成
Dockerをインストールした場合の構成は以下のようになります。
HostOS(Mac)にDockerがインストールされます。アプリやpythonなどはコンテナにまとめられ、Docker上で動作します。
号口環境にアプリをリリースする際は、コンテナ毎サーバーに配信すれば、問題なく動作させることができます。コンテナには、アプリを動作させるために必要な情報が全て入っているからです。
Dockerの構成は理解できましたでしょうか?構成が理解できると、Dockerの概要で説明した部分も納得できると思います。
Dockerをつかってみよう!
Dockerの概要が理解できたら、Dockerのセットアップをして実際にコンテナを起動させてみましょう。
Dockerの使い方については、下記の記事で順番に解説しているので、ぜひご覧ください。
Dockerのセットアップ
Dockerのセットアップ方法を詳しく解説しています。Dockerのインストールがまだの方はご覧ください。
Dockerイメージを作成する
Dockerイメージとはコンテナの基となる部分です。DockerのコマンドなどDockerの基礎操作が学べます!
Dockerの関連記事
当ブログでは、Dockerに関連する記事をいくつか発信しています。オススメの記事はこちらです。
- 【初心者向け】Dockerファイルとは?書き方を解説【Docker入門④】
- DockerイメージをDockerHubにpushしてみよう!【Docker入門⑤】
- docker-composeとは?dockerコマンドとの違いを理解しよう【Docker入門⑥】
- 【docker rmの使い方】コンテナの削除方法を解説【Docker入門⑦】
- 【初心者向け】Dockerの始め方解説【チュートリアルをやってみよう】
その他のDockerの記事はこちらの一覧から確認することができます。
Dockerについてさらに勉強したい方はUdemyがおすすめ
Dockerについてさらに勉強したい方はUdemyがおすすめです。UdemyはITの講座が豊富にあるサイトです。参考書での勉強が苦手な方にはおすすめです。
以下のように、Dockerに関する講座が豊富にあります!
- セールだと1500円前後!
- 無料サンプル講義動画・無料講義動画あり!
- 気に入らなければ30日間返金保証!
Dockerとは?初心者向けに分かりやすく解説まとめ
今回の記事では、Dockerの概要を分かりやすく解説しました。Dockerは今後必ず使う技術ですので、ぜひ覚えておきましょう!
Docker参考資料
・たった1日で基本が身に付く!Docker/Kubernetes超入門
・プログラマのためのDocker教科書