【効果的学習法】Dockerをこれから学びたい人のためのオススメ書籍&教材特集


※ 当ページには【広告/PR】を含む場合があります。
2023/05/28
2025/07/06

Dockerの安定版がリリースされて10年以上経ち、成熟したインフラ技術として定着しています。

今やDockerのある開発環境というのが当たり前となっているため、IT技術を支える重要なインフラの一つとして欠かすことのできないものになりました。

Docker登場以前の開発環境のカオス的な状況を痛いほど経験してきたエンジニアの身としては、当時の
「ハードウェア単位で開発環境を整える」ことに非常に時間とコストを費やした時代が今や懐かしさすら感じます。

ちなみに著者もガッツリとコンテナ関連の技術を業務でつかうので、大体のスペックを当てはめて年収見積もりがどれくらいか見てみると...

合同会社タコスキングダム|蛸壺の技術ブログ

エンジニア年収推定ツール(β)|Techfeed

(※2023年頃のデータ)

まぁ、800万には届かないものの、他の関連技術よりは少し高めの値段設定になっています。

余興はさておき、ここでは社内教育目的もかねて、Docker(コンテナ技術関連)を学び始める方に有用な学習リソースを定期的にアップデートしながらまとめて紹介していくコーナーです。


Dockerのインストール

このブログでも度々Dockerを使った技術ネタを織り込む機会がありますが、話がとっ散らかりすぎて(...申し訳無いです)、『Docker/Docker-Composeのインストール方法』を一体どこの記事で紹介したのか自分でも探しまわってしまう始末でした。

ということで、この記事パートでDockerのインストール方法に改めて触れておきましょう。

まず、Docker公式のドキュメント(英語)は以下にあります。

参考|Install Docker Engine

インストール方法はOSごとに細かい手順が紹介してあり、多岐にわたるためすべてを紹介することができません。

ここでは当ブログ記事のベースとして利用している「Debian」をLinux代表として紹介してみます。

参考|Install Docker Engine on Debian

インストール方法(正式な手順)

DebianへのDocker(Docker Engineスイーツ)の導入は「apt」から行いますが、apt公式のパッケージリストには載っていないため、Docker専用のレポジトリを登録する必要があります。

            #👇インストールのためのGPGキーを導入
$ sudo apt-get update && sudo apt-get install ca-certificates curl
$ sudo install -m 0755 -d /etc/apt/keyrings
$ sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
$ sudo chmod a+r /etc/apt/keyrings/docker.asc

#👇sources.list.d以下にレポジトリを登録
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
        
これで、Dockerがaptからインストール可能になります。

            $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
        
なんだか何度もコマンドを打たないといけないのが面倒です。

そこで、一発インストールスクリプトが公開されています。

インストール方法(スクリプトを利用する)

他のブログ等でもこちらを紹介されていることがほとんどだと思います。

            $ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
        
Dockerについて深く考えることがなければこれで一発インストール完了です。

Dockerをアンインストールする

インストールスクリプトを使ってDockerを導入した場合には"何がインストールされたか"はブラックボックスとなりますが、公式の手順で入れた場合、アンインストールするものは明らかです。

この場合、アンインストールはaptから行います。

            $ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
        
またアプリケーションだけではなく、システムに残ったDockerのリソースファイルはかなりかさばるため、合わせて消しておきましょう。

            #👇イメージファイル
$ sudo rm -rf /var/lib/docker
#👇コンテナやボリューム等
$ sudo rm -rf /var/lib/containerd
#👇Docker用のAPTレポジトリリスト
$ sudo rm /etc/apt/sources.list.d/docker.list
#👇レポジトリキー
$ sudo rm /etc/apt/keyrings/docker.asc
        

Docker-Composeを入れる

Docker-Composeも合わせて導入しておきます。

参考|Docker Compose のインストール

まずはDocker-Composeの利用可能なバージョン(最新バージョン等)を確認しておきましょう。

参考|Releases

下のコマンドで
{VERSION}の部分を例えば2.38.1等に置き換えて実行します。

            $ sudo curl -L https://github.com/docker/compose/releases/download/{VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
        
ダウンロードしたら、実行権限を与えます。

            $ sudo chmod +x /usr/local/bin/docker-compose
        
これでインストール完了です。

なお、Python/Pipが利用できる場合には、

            $ pip install docker-compose
        
で手早く導入可能です。


Docker(コンテナ技術関連)を学べる書籍を探す

Dockerは他の技術を支える「インフラ」技術の特性があるため、新機能などの追加や他のコンテナ技術の台頭はあるもの、使い方や勉強法などリリースからほとんどの変わらない点に追いては、一度その基礎を身につけると最新バージョンをキャッチアップしなくても良い部類の知識です。

逆に言うと、
Dockerの基礎づくりがもっとも重要かつハードルが高いと言えます。

初学者が独学する場合、英語に堪能であれば、docker公式のドキュメンテーションページがもっとも充実しているといえます。

Docker Docs|公式サイト

このサイトで全て事足りるなら皆さん困らないのですが、説明を含めシンプルに出来すぎているので、読み進んでいくと必ず眠くなってくるはずです。

書籍を読みながらステップアップしたいという場合には、Docker関連の専門書は一つの選択肢です。

Dockerの専門書となると、かなりテンプレの内容の書籍も多くあり、結局公式のDocker Docsの日本語訳に行き着くパターンになるので、入門書であればどれを手に取られても良い気がします。

簡潔なビジュアル多めで飽きさせない作りになっている『
図解即戦力 仮想化&コンテナがこれ1冊でしっかりわかる教科書
』が、Dockerを習得した人間からしても眺めているだけで新しい気付きがあって楽しいです。

他には、比較的最近に出版されたもので、『
Docker&仮想サーバー完全入門
』はシンプルにDockerの話がまとめられていて入門書には良いでしょう。

著者は普段からLinux&Mac OSXの二つ持ちですのであまり意識はしませんが、メインでWindowsで開発する場合に、WSL2のセットアップに触れてあるので現在の開発環境に合わせて、書籍を選ぶことも重要かもしれません。

Docker入門書としては売れ筋でもある『
仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
』は割と初心者目線で書いてるのでWindowsユーザーには読みやすいでしょう。


Docker(コンテナ技術関連)を学べる学習サービスを探す

やっぱり本でも眠くなるときは眠くなります。

特にDockerは縁の下を支えるインフラ技術の一つですし、地味にLinuxの知識とネットワークの知識を必要に応じて覚えないといけません。

まさに初学者にとってDockerへの興味やモチベーションを維持するには非常に手強いのは、
「やっていることが地味すぎる」という、技術的な難しさとは別方向の話があります。

この辺がDockerを教える側が、新人のエンジニアが中々覚えてくれない、と割と悩んでしまうハードルにもなっています。

もう少し楽しくDockerを学習させたい、何度も何度も同じことを繰り返し教えたくない、と思う場合、
『Udemyの動画講座』が便利です。

UdemyにはDockerおよび仮想コンテナ化関連の技術講座が充実しています。

例えば、Dockerに触れる前の駆け出しエンジニア相当にマッチしている入門レベル講座として、『
Linux とネットワークの基礎から学ぶ Docker 入門
』がオススメです。

最低限のLinuxコマンドの使い方と、コンテナ間のネットワーク技術の基本を動画を通じて効率よく学ぶことが出来るでしょう。

次にDocker入門レベルを終えて、なにか実践的なテーマを一度やってみたいとしたら、『
ゼロからはじめる Dockerによるアプリケーション実行環境構築
』で、DjangoやRuby on Railsの開発環境の構築方法を例として、具体的なDockerの利用法を理解できるようになるでしょう。

少しむずかしめですが、基礎から応用まで一気にレベルを引き上げてくれる講座に、『
米シリコンバレーDevOps監修!超Docker完全入門(2022)【優しい図解説とハンズオンLab付き】
』などもオススメです。

最終的に、Docker、Dockerfile、Docker Composeとステップアップさせていき、実践的なWebアプリ構築までのチャレンジまで解説してくれているので、ここまでちゃんと理解できたら、他に書籍などでサプリメンタルな勉強は不要になるでしょう。

オプションにはなりますが、例えばDockerを応用した講座の一例として、『
米国AI開発者がゼロから教えるDocker講座
』のようなクラウド型のAIサービスを構築するハウツーの解説を行っている講座もあります。

Udemyには探せばかなりマニアックなものまで対応していることがありますので、一度興味があるタイトルで検索してみたら掘り出し案件が見つかるかもしれません。


転職でアピールポイントして輝くDockerの魅力

だいぶ世間の企業様でも、社内でDockerを重視して取り組もうという感触のようなものが感じられるようになりつつあります。

著者の経験でいうと、機械メーカーの開発勤務時代には、Dockerを利用して組込み用のミドルウェア開発の環境構築に大いに利用しておりました。

Dockerが登場する以前は、「ソフトウェアプログラミング専用パソコン」、「組込みファーム書き込み専用パソコン」、「デバイスエミュレータを入れたデバッグ専用パソコン」などなど、ハードウェアも違えば、OSも異なるというカオスな状況を開発シーンによって使わけるということをやっていました。

それが今では、Docker一つでクロスプラットホームな開発環境が、Dockerfileでいつでもどこにでもすぐさま構築できるわけです。

特にアメリカのシリコンバレーで働いていた当時からしても、Dockerの存在がエンジニア界隈に大きなインパクトのある「イノベーション」として迎え入れられました。

著者が前の会社で働いていたときに、顧客の企業で同じようにDockerを駆使してハードウェアの制御ソフトを書いていたフィールドエンジニアのインド人の方は、時価でいうと1500万円相当の年収を得ていたようで...。

そのときに著者も30代前半だったわけですが、同じような内容で日本企業の現地駐在エンジニアとして働いてたときの手取りが600万円いくかいかないかだった状況でした。

もう5年以上も前の状況にはなりますが、同じような職種で、同じような業務をしていても、日本と海外では企業が評価するエンジニアへの評価には大きな溝が存在してました。

現状の日本においても、インフラエンジニアへの評価は全体的にみてもそう変わっていません。

日本に帰り独立して、地方の中小企業様との交渉などでお話を聞かせていただくことも多い中、むしろ、付加価値として世間から評価を受けにくいインフラエンジニアの評価はかなり低いと言わざるを得ないのが正直なところです。

Dockerに限らず、インフラ系に高度な知識を有するエンジニアの方で、600万ないし700万に届かないような中小企業にお勤めの方は、一度、ご自身の現在の正当な年収査定額をチェックされても良いかもしれません。

日本でもようやくジョブ型・タスク型業務へのシフトへの動きが経済界の後押しを受けて加速しており、エンジニア転職も話題になることもしばしばです。

エンジニア転職を最終目的とした場合に、専用のコンサルタントに無料相談できる『
TechClipsエージェント
』なら年収査定だけでなく、現在保有しているスキルを細かく聞き取りして、能力に応じた報酬を出せる企業とのマッチングを行ってもらえます。

海外ではDockerのみならずネットワークやサーバーの知識を生業にしているインフラ系エンジニアは、高度な専門職として社内でもエリートの位置づけであり、評価も年収も高いのが一般的です。

他方、日本はというと、慣例的に「インフラエンジニア=SE(システムエンジニア)」を暗に思い浮かべることのほうが多く、実は言語のミスマッチが存在しているようです。

日本における「システムエンジニア」は、実のところ"情報システム関連の業務に従事する人"を指す和製英語になっています。

話は逸れますが、英語で「Systems Engineering」は「システム工学」と訳されるため、「Systems Engineer」というと、「システム工学を専門的に従事する技術者」となります。

システム工学の着目するシステムの対象は様々で、例えば「海洋システム」「機械システム」「交通システム」...などなど、日本のような
システム=情報技術という見方にはならないのです。

そんな日本独自のビジネス文化から生まれたSEの平均年収はおおよそ450~550万円だそうです。

本来であれば海外では重要視されるはずのインフラエンジニアにあたるポジションのSEがここまで評価が低いことはとても嘆かわしいことだと思います。

さらに悪いことには、
「客先常駐SE」という海外でもあまり聞かない、"現代版の出先奉公人制度"がまだまだ存在しているようです。

参考|客先常駐とは?ネットワークエンジニアが常駐して働くメリット・デメリット

実際、古く伝統のある大企業ほど、社内システムを自社開発するより、他の会社に委託開発する傾向が強い日本の文化もあり、そのシステムで障害が起こったときにすぐさま対処できるように顧客のオフィスに自社のSEを常駐させられるという...。

よく考えなくても、海外のインフラエンジニアが聞いたら「そんな仕事ありなの?」と即日拒否られるような、日本独自の"理不尽なシステム"です。

とにかく、客先常駐SEになってしまうと、最大のデメリットとして、
本当に必要なインフラ技術の知識が身に付かないので、エンジニアとしてステップアップ出来ずに、将来の年収アップも程遠くなってしまいます。

かつての独自性の高い設計で納入し、気づけばかなり古い技術となったネットワークも場合によっては根気強くサポートさせられることも多いので、「骨董品を磨く」ような作業を延々とやらせられるという顛末です。

そんな顧客常駐SEのお悩みを親身になって聞いてくれるのが、
です。

関東圏(東京・神奈川・千葉・埼玉)および関西圏(大阪・京都)勤務で、現在顧客常駐されることにお悩みであれば、一度ご相談されてはどうかと思います。

SE職も大都市圏にベンダーが集中しているため、特に東京を中心に求人が固まってしまうのは仕方ないことです。

しかしニーズとしても各地方都市のほうがSE転職先として都合のよろしい方もおられるかと思います。

そういった方の場合には、全国に幅広く展開して実績豊富な「
Winスクール
」ならば、地方のSE転職に強く、その地域に応じたローカルSE求人情報なども提供してもらえるので、検討されると良いでしょう。

いずれにせよ、Dockerの学習にとどまらず、インフラ系エンジニアのポテンシャルを十分に引き出すことのでご自身のキャリアアップを図り、より正当な報酬と評価を与えてくれる職場環境を掴み取られることを祈るばかりです。


Docker関連記事ダイジェスト

なお、現在のこのサイトでたまに執筆中のDocker関連記事ラインナップです。

フロントエンド・サーバーサイドでお役立ちできそうなDockerの技術記事を発信しています。

なにかDocker関連で気になるテーマがあれば、お問い合わせフォームよりご意見・リクエストもお待ちしております。


まとめ

今回はDockerで効果的な学習方法をいくつか検討してみました。

Dockerは既に分野を問わずあらゆるエンジニアの開発環境になくてはならないインフラ技術として浸透しています。

Docker関連の技術を極めれば、幅広い仕事で必ず役に立つスキルになるので、ぜひとも社内の新人教育などで積極的に取り組まれてはいかがかと思います。

学習も一気に覚えこもうとはせずに、コツコツと勉強を進めて、Dockerを基本とした仮想コンテナ化の世界を楽しんみながら、自分の知識の一部にしてみてください。