こんにちは、Zoom飲みをしたら楽しかったShinyaです
いきなりですがDockerってご存じでしょうか?
こんな見た目のかわいいやつです

公式サイトによるとDockerは2019年のStackOverflowの調査では最も愛されているプラットフォームとしてランクされたようです
You rated Docker the #1 in "Most Loved " and #2 "Most Wanted" platform" in the 2019 StackOverflow Survey.
つまり世界中でめっちゃ人気のツールってことになります
しかしプログラミング初心者からするとDockerって中身が良く分からなくて敬遠しがちではないでしょうか?
私もその一人でした
しかし今回、私ShinyaがそんなDockerについに着手したので、見えてきたDockerの凄さについて簡単にお伝えしていこうと思います
愛されるプラットフォームにはやっぱり訳がありました
Dockerの概要
Dockerとはコンテナ型の仮想環境を提供するプラットフォームです
自分のPCに必要なソフトウェアをインストールしなくても、小さな区画(コンテナ)ごとに好きな仮想環境を作ることができます

どうやって作るかはこの記事では深くは触れません
あくまで特長(何が良いか)について見ていきます
Dockerの特長
1.仮想環境を明確に指定
Dockerで仮想環境を作る際には、仮想環境を構成する要素のバージョンを特定のファイルに記載します
仮想環境はそのファイルの記述に基づき構築されるので、バージョンの指定さえ同じならどんなPCでも同じ仮想環境が作れます
同じ仮想環境が再現できると共同開発する際に環境差分がなくなるので、面倒なエラーが減ることになります
また、本番環境に合わせた仮想環境を作ることでデプロイをスムーズにできます
2.スクラップ&ビルド簡単
Dockerでは簡単にコンテナ型の仮想環境を作ったり消したりできます
その手軽さは驚きです
ターミナルで数回コマンドを打つだけでコンテナ型の仮想環境を作ったり消したりできます
自分のPC本体に必要なものをインストールしたりVirtualBoxといった仮想マシンを用意したりする必要がありません
仮想環境構築が上手くいかなくても、簡単にやり直せるのでとても気軽に試行錯誤できます
自分のPC本体に色々インストールするのって怖いですがDockerだとその心配がありません
3.幅広いイメージ
コンテナ型の仮想環境を作るための情報を「イメージ」と呼びます
「イメージ」はOSやソフトウェアのディスクに近い概念です
Dockerではこの「イメージ」をネットから取ってきて、それをもとにコンテナを作ります
プログラミング言語やデータベースといった多様なイメージがネット上には公開されており、それらのイメージは簡単に取得できるので、「あれ少し試してみたい」といったときにDockerがあると気軽にトライできます
4.イメージ配布可能
Dockerでは取得したイメージをもとに自分でイメージを作成し、他の人へ配布することができます
つまり任意の環境を複数人で容易に共有できるということです
環境構築ってなかなか手間がかかる作業なので、これを省けるイメージ配布は非常にメリットが大きいです
まとめ
実際に調べて触って感じたDockerの特長をお伝えしました
一言でまとめるとDockerはあらゆる開発を極めて手軽にするツールといえるでしょう
Dockerを最大限に利用してガンガン開発をすすめれるようになりたいですね!
それでは、また