カテゴリー
【効果的学習法】Dockerをこれから学びたい人のためのオススメ書籍&教材特集
※ 当ページには【広告/PR】を含む場合があります。
2023/05/28
2025/07/06
今やDockerのある開発環境というのが当たり前となっているため、IT技術を支える重要なインフラの一つとして欠かすことのできないものになりました。
Docker登場以前の開発環境のカオス的な状況を痛いほど経験してきたエンジニアの身としては、当時の
ちなみに著者もガッツリとコンテナ関連の技術を業務でつかうので、大体のスペックを当てはめて年収見積もりがどれくらいか見てみると...

(※2023年頃のデータ)
まぁ、800万には届かないものの、他の関連技術よりは少し高めの値段設定になっています。
余興はさておき、ここでは社内教育目的もかねて、Docker(コンテナ技術関連)を学び始める方に有用な学習リソースを定期的にアップデートしながらまとめて紹介していくコーナーです。
Dockerのインストール
このブログでも度々Dockerを使った技術ネタを織り込む機会がありますが、話がとっ散らかりすぎて(...申し訳無いです)、
『Docker/Docker-Composeのインストール方法』
ということで、この記事パートでDockerのインストール方法に改めて触れておきましょう。
まず、Docker公式のドキュメント(英語)は以下にあります。
インストール方法はOSごとに細かい手順が紹介してあり、多岐にわたるためすべてを紹介することができません。
ここでは当ブログ記事のベースとして利用している「Debian」をLinux代表として紹介してみます。
インストール方法(正式な手順)
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の利用可能なバージョン(最新バージョン等)を確認しておきましょう。
下のコマンドで
{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の専門書となると、かなりテンプレの内容の書籍も多くあり、結局公式のDocker Docsの日本語訳に行き着くパターンになるので、入門書であればどれを手に取られても良い気がします。
簡潔なビジュアル多めで飽きさせない作りになっている『
これ1冊でDockerがしっかりわかる 図解即戦力 仮想化&コンテナがこれ1冊でしっかりわかる教科書
他には、比較的最近に出版されたもので、『
著者は普段からLinux&Mac OSXの二つ持ちですのであまり意識はしませんが、メインでWindowsで開発する場合に、WSL2のセットアップに触れてあるので現在の開発環境に合わせて、書籍を選ぶことも重要かもしれません。
Docker入門書としては売れ筋でもある『
Docker(コンテナ技術関連)を学べる学習サービスを探す
やっぱり本でも眠くなるときは眠くなります。
特にDockerは縁の下を支えるインフラ技術の一つですし、地味にLinuxの知識とネットワークの知識を必要に応じて覚えないといけません。
まさに初学者にとってDockerへの興味やモチベーションを維持するには非常に手強いのは、
この辺がDockerを教える側が、新人のエンジニアが中々覚えてくれない、と割と悩んでしまうハードルにもなっています。
もう少し楽しくDockerを学習させたい、何度も何度も同じことを繰り返し教えたくない、と思う場合、
UdemyにはDockerおよび仮想コンテナ化関連の技術講座が充実しています。
例えば、Dockerに触れる前の駆け出しエンジニア相当にマッチしている入門レベル講座として、『
最低限のLinuxコマンドの使い方と、コンテナ間のネットワーク技術の基本を動画を通じて効率よく学ぶことが出来るでしょう。
次にDocker入門レベルを終えて、なにか実践的なテーマを一度やってみたいとしたら、『
少しむずかしめですが、基礎から応用まで一気にレベルを引き上げてくれる講座に、『
最終的に、Docker、Dockerfile、Docker Composeとステップアップさせていき、実践的なWebアプリ構築までのチャレンジまで解説してくれているので、ここまでちゃんと理解できたら、他に書籍などでサプリメンタルな勉強は不要になるでしょう。
オプションにはなりますが、例えばDockerを応用した講座の一例として、『
Udemyには探せばかなりマニアックなものまで対応していることがありますので、一度興味があるタイトルで検索してみたら掘り出し案件が見つかるかもしれません。
転職でアピールポイントして輝くDockerの魅力
だいぶ世間の企業様でも、社内でDockerを重視して取り組もうという感触のようなものが感じられるようになりつつあります。
著者の経験でいうと、機械メーカーの開発勤務時代には、Dockerを利用して組込み用のミドルウェア開発の環境構築に大いに利用しておりました。
Dockerが登場する以前は、「ソフトウェアプログラミング専用パソコン」、「組込みファーム書き込み専用パソコン」、「デバイスエミュレータを入れたデバッグ専用パソコン」などなど、ハードウェアも違えば、OSも異なるというカオスな状況を開発シーンによって使わけるということをやっていました。
それが今では、Docker一つでクロスプラットホームな開発環境が、Dockerfileでいつでもどこにでもすぐさま構築できるわけです。
特にアメリカのシリコンバレーで働いていた当時からしても、Dockerの存在がエンジニア界隈に大きなインパクトのある「イノベーション」として迎え入れられました。
著者が前の会社で働いていたときに、顧客の企業で同じようにDockerを駆使してハードウェアの制御ソフトを書いていたフィールドエンジニアのインド人の方は、時価でいうと1500万円相当の年収を得ていたようで...。
そのときに著者も30代前半だったわけですが、同じような内容で日本企業の現地駐在エンジニアとして働いてたときの手取りが600万円いくかいかないかだった状況でした。
もう5年以上も前の状況にはなりますが、同じような職種で、同じような業務をしていても、日本と海外では企業が評価するエンジニアへの評価には大きな溝が存在してました。
現状の日本においても、インフラエンジニアへの評価は全体的にみてもそう変わっていません。
日本に帰り独立して、地方の中小企業様との交渉などでお話を聞かせていただくことも多い中、むしろ、付加価値として世間から評価を受けにくいインフラエンジニアの評価はかなり低いと言わざるを得ないのが正直なところです。
Dockerに限らず、インフラ系に高度な知識を有するエンジニアの方で、600万ないし700万に届かないような中小企業にお勤めの方は、一度、ご自身の現在の正当な年収査定額をチェックされても良いかもしれません。
日本でもようやくジョブ型・タスク型業務へのシフトへの動きが経済界の後押しを受けて加速しており、エンジニア転職も話題になることもしばしばです。
エンジニア転職を最終目的とした場合に、専用のコンサルタントに無料相談できる『
海外ではDockerのみならずネットワークやサーバーの知識を生業にしているインフラ系エンジニアは、高度な専門職として社内でもエリートの位置づけであり、評価も年収も高いのが一般的です。
他方、日本はというと、慣例的に「インフラエンジニア=SE(システムエンジニア)」を暗に思い浮かべることのほうが多く、実は言語のミスマッチが存在しているようです。
日本における「システムエンジニア」は、実のところ"情報システム関連の業務に従事する人"を指す和製英語になっています。
話は逸れますが、英語で「Systems Engineering」は「システム工学」と訳されるため、「Systems Engineer」というと、「システム工学を専門的に従事する技術者」となります。
システム工学の着目するシステムの対象は様々で、例えば「海洋システム」「機械システム」「交通システム」...などなど、日本のような
システム=情報技術
そんな日本独自のビジネス文化から生まれたSEの平均年収はおおよそ450~550万円だそうです。
本来であれば海外では重要視されるはずのインフラエンジニアにあたるポジションのSEがここまで評価が低いことはとても嘆かわしいことだと思います。
さらに悪いことには、
実際、古く伝統のある大企業ほど、社内システムを自社開発するより、他の会社に委託開発する傾向が強い日本の文化もあり、そのシステムで障害が起こったときにすぐさま対処できるように顧客のオフィスに自社のSEを常駐させられるという...。
よく考えなくても、海外のインフラエンジニアが聞いたら「そんな仕事ありなの?」と即日拒否られるような、日本独自の"理不尽なシステム"です。
とにかく、客先常駐SEになってしまうと、最大のデメリットとして、
かつての独自性の高い設計で納入し、気づけばかなり古い技術となったネットワークも場合によっては根気強くサポートさせられることも多いので、「骨董品を磨く」ような作業を延々とやらせられるという顛末です。
そんな顧客常駐SEのお悩みを親身になって聞いてくれるのが、
関東圏(東京・神奈川・千葉・埼玉)および関西圏(大阪・京都)勤務で、現在顧客常駐されることにお悩みであれば、一度ご相談されてはどうかと思います。
SE職も大都市圏にベンダーが集中しているため、特に東京を中心に求人が固まってしまうのは仕方ないことです。
しかしニーズとしても各地方都市のほうがSE転職先として都合のよろしい方もおられるかと思います。
そういった方の場合には、全国に幅広く展開して実績豊富な「
いずれにせよ、Dockerの学習にとどまらず、インフラ系エンジニアのポテンシャルを十分に引き出すことのでご自身のキャリアアップを図り、より正当な報酬と評価を与えてくれる職場環境を掴み取られることを祈るばかりです。
Docker関連記事ダイジェスト
なお、現在のこのサイトでたまに執筆中のDocker関連記事ラインナップです。
フロントエンド・サーバーサイドでお役立ちできそうなDockerの技術記事を発信しています。
なにかDocker関連で気になるテーマがあれば、お問い合わせフォームよりご意見・リクエストもお待ちしております。
まとめ
今回はDockerで効果的な学習方法をいくつか検討してみました。
Dockerは既に分野を問わずあらゆるエンジニアの開発環境になくてはならないインフラ技術として浸透しています。
Docker関連の技術を極めれば、幅広い仕事で必ず役に立つスキルになるので、ぜひとも社内の新人教育などで積極的に取り組まれてはいかがかと思います。
学習も一気に覚えこもうとはせずに、コツコツと勉強を進めて、Dockerを基本とした仮想コンテナ化の世界を楽しんみながら、自分の知識の一部にしてみてください。
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー