宮水の日記

宮水の日記

主に書評や資格取得について記事を書いています。

プログラマのためのDocker教科書を読みました 1日目

みなさんこんにちは!宮水です!

f:id:kattyan53:20190819101236p:plain

 

実は私、この度9月から新しい会社に行くことになりました👏(パフパフドンドンクラッカーパーン🎉)

 

会社名は伏せますが、昨年からずっと興味関心のあった教育関連の会社ということで本当に嬉しく思っています!!!

 

で、その会社のプロダクトブログによると、

弊社ではありがたいことにDocker Compose が整備されており...

 との記述が。

 

  

 

 

私はローカルでしか開発したことがなかったので、ウルトラNEO★NEATを満喫しているうちにDockerの勉強をしておこうと思いました。

 

 

幸い、私の家にはスーパーエンジニアのSさんから教えていただいたDockerの本がありました。

 

 

こちら!

 

コンテナ技術を使ったアプリケーション実行環境プラットフォームである「Docker」を使ってインフラを構築するための入門書です。

特にオンプレミス(物理環境)での環境構築がない、アプリケーションエンジニアを対象に、OSやネットワーク技術などのインフラの基礎概念を図解しながら、Docker/Kubernetesを使ったインフラ構築/運用の基本的な流れと手順を解説します。

 

こちらの本は全10章で構成されており、インフラとは?からKubernetesのことまで書いてあるみたいです!

 

一日2章ずつ読んでいこうと思います!

 

第1章 押さえておきたいシステムとインフラの基礎知識

第1章では、タイトルの通りインフラの基礎知識について書かれていました!

 

・オンプレミス(自社でデータセンターを保有してシステム構築から運用までを行う形態のこと)クラウドAWSなど、インターネットを介してシステム構築や運用ができるサービスのこと)の違い

・ハードウェアとネットワーク、ミドルウェアの基礎知識

・OS(Linux)の概要

・インフラを構成・管理するときの基礎知識

 

が記載されており、基本情報を勉強したことがある方、Linuxの本を1冊読んだことがある方は比較的楽に読める内容だと思いました!

 

いきなりDockerから入らずに、もっと最初の基礎知識から解説してくれていてとても親切ですね!

私も忘れている内容が多かったので、とても良い復習になりました。

 

第2章 コンテナ技術とDockerの概要

Dockerとは、コンテナ技術を使ったアプリケーションの実行環境を構築/運用するためのプラットフォームです。

 ふむ...

 

第2章では、いきなりDockerから入るのではなく、コンテナって何?の部分を解説していました。

"コンテナ"ってDocker特有の言葉かと思っていたんですけど、コンテナ技術自体に歴史があったんですね!知らなかった...

 

現実世界のコンテナってこんな感じですが、

f:id:kattyan53:20190819084936p:plain

 

ホストOSの上に作る論理的な区画、これをコンテナと呼んでいるそうです。

f:id:kattyan53:20190819085631p:plain

プログラマのためのDocker教科書 p40より

本物のコンテナみたいだ...


本以外にちょっと調べてみると、仮想化にもいくつか種類があり(ホスト型、ハイパーバイザー型、コンテナ型)、コンテナは仮想化技術の一種であることを理解しました。

qiita.com

 

それぞれにメリットデメリットがあり、DockerだとOSやディレクトリ、IPアドレスなどのシステムリソースを、個々のアプリケーションがあたかも占有しているように見せることができるのがいいんだぜ!とのことでした。

 

 

 続いて、Dockerの概要です。

 

 Dockerには、

 Dockerのイメージを作る機能(Build)

 Dockerのイメージを共有する機能(Ship)

 Dockerコンテナを動かす機能(Run)

 

があり、これらは以下のようなDockerコンポーネントを利用して実現されています。

■Docker Engine
 Dockerイメージ作成やコンテナの起動を行うためのDockerのコア機能

■Docker Registry
 Dockerイメージを公開/共有する機能

■Docker Compose
 コンテナ群を一元管理するためのツール

■Docker Machine
 クラウドの環境にDockerの実行環境をコマンドで自動生成するためのツール

■Docker Swarm
 複数のDockerホストをクラスタ化するためのツール

 

続いて、どうやってコンテナを区画化するのか、リソース管理の仕組み、Dockerイメージのデータ管理の仕組みについて記載されていました。

 

用語の解説が多く、説明しようと思うと本そのままになってしまうので、明日から実際に手を動かしながら本の内容を引用させていただきつつ理解していこうと思います!

 

3章から実際にDockerをインストールして動かすので楽しみです!

 

本日は以上です!ここまで読んでいただきありがとうございました!