【ゼロからわかる】Docker(コンテナ)を使うための準備と概要編
0.はじめに
DX推進が活発となる中、コンテナを使うことが自身の開発現場でも主流となってきてます。
しかし、初学者にとってコンテナという技術はわかりづらい。。。
コンテナを理解するには、Dockerという技術に触れながら学ぶのが一番の近道。
そこで、まずは初学者の方がDockerを使うための準備と、そもそもDockerでコンテナを扱うとはどういうことなのかを解説いたします。
1.なぜDocker(コンテナ)を学ぶのか
以下記事の通り、多くの人がDocker(コンテナ)を使い始めています。そのため、今後Dockerを使えるということはIT業界で必須になっていくはずです。
開発者6万人が回答、69%が利用しているDockerは基本ツールのポジションに
なぜ利用者が増えているかというと、Docker(コンテナ)を利用することで「高速かつ簡単に同じ環境を作れる」というメリットがDevOpsなどの開発高度化にマッチするからです。
たとえば、Dockerがない環境とDockerがある環境でパッケージを導入する場合を比較すると以下のようになります。
Dockerなしの場合、何度もトライ&エラーを繰り返してパッケージを導入していきますが、Dockerがある場合はコンテナを起動するだけで済むので非常に楽になります。
他にもコンテナとは何かをざっくり知りたい方は、以下記事で詳しく書きましたのでぜひ。
2.Linuxの基礎
DockerはLinuxのコンテナ技術を利用するため、Dockerを使用するにはLinux上に環境を構築することになります。
そのため、Dockerを利用するにはLinuxの基礎知識が必要となります。
取り急ぎ、Dockerを利用するための必要最低限なLinxu知識は以下記事にまとめましたのでぜひ。
3.DockerHubの登録とDockerのインストール
次に、Dockerを自分のPC上で利用できるように、DockerHubの登録とDockerDesktopのインストールを行いましょう。
名称 | 説明 |
---|---|
DockerHub | Dockerimageを管理するDocker社のレジストリ。既存のDockerimageを使えるようになって便利。 |
DockerDesktop | Windowsやmac環境でDockerを動作させるためのツール。 |
具体的な手順は以下を参照していただければと思います(簡単です)。
<DockerHubの登録>
<DockerDesktopのインストール>4.Dockerでコンテナを作る3つの方法(概要編)
最後に、Dockerでコンテナを作るとはどういうことなのかを簡単に解説します。
4.1.用語と関係性の整理
Dockerには既存のシステム開発にはない用語が多数出てきます。
そのため、Dockerを実際に触っていく際に覚えておくべき用語と関係性について紹介します。
名称 | 説明 |
---|---|
コンテナ | Docker上で動作するアプリケーション単位です。 |
Docker image | コンテナを作成するための依存関係や情報を含むデータです。コンテナはこのイメージが元になって作成されます。 |
Dokcerfile | Docker imageをビルドするための手順が記載されたファイルです。自身でDocker imageを作成したい場合は、このファイルを作成する必要があります。 |
4.2.DockerHubからDockerimageをpullして起動する
コンテナの作成方法の1つとして、「DockerHubからDockerimageをpullして起動する」という方法があります。
既存のDockerimageを利用してコンテナを作成したい場合は、こちらの方法を選択します。
試しにコンテナを使ってみたい人は、「hellow-world」というDockerimageがあるので、オススメです。
4.3.コンテナをcommitして更新内容をDockerimageにする
次のコンテナ作成方法は、既存のコンテナを更新(commit)して、更新内容をDockerimageにする方法です。
既存のコンテナを利用して、オリジナルのコンテナを作りたい場合はオススメです。
4.4.DockerfileからDockerimageを作る
最後に紹介するのは、「DockerfileからDockerimageを作る」です。通常の開発現場では、この方法でコンテナを作るのが一般的です。
なんでかというと、Dockerfileが設計図にもなるため、このファイルがないと多人数での開発・保守がやりにくくなってしまうからです(Dockerfileの存在自体がコンテナを使うメリットでもあります)。
開発現場でコンテナを本格的に利用したい場合は、Dockerfileを作れる必要があります。
5.おわりに
いかがでしたでしょうか?「コンテナってなに?どうすればマスターできるの?」という疑問に少しでも答えられれば幸いです。
筆者自身もまだまだ勉強中ですが、少しでもお役に立てる情報を発信できるよう頑張ります。
おわりっ!!
参考教材
米国AI開発者がゼロから教えるDocker講座←すごくオススメです!!
Discussion