はじめてのDocker ( 入門 ) 研修コースに参加してみた

今回参加した研修コースは はじめてのDocker です。
とても注目の技術だけに教室も満員御礼でした !!
このコースではDockerとその核となるコンテナの解説、Dockerなどコンテナを動かすことに特化したOSをインストール・設定して、実際Dockerを使って色々環境を構築してみました。
参加している方も後半の演習では次から次へと環境を構築しては触り心地を確かめていたので、Dockerってどんなものだろうというものを確かめられていました。
ただ、
開発環境をDockerで構築するには?
プロダクションでDockerを投入するには?
と言った開発現場向けではないので、このあたりを希望される方には別となります。
(とはいえSIの領域で実績があるのかどうか不明なので、どこまで求められているんでしょう …)
ということで、タイトル通り、はじめてDockerに触れるという入門者には、コンテナの理解とDockerコマンドでサクサク構築できるので、取っ掛かりとしてとてもオススメの内容でした !
では、コース内容をレポートします !!
もくじ
コース情報
想定している受講者 | Linuxの基本操作を習得していること |
受講目標 |
|
講師紹介
今回のコースの講師は 岩木慎一 さんでした。 この “参加してみた” レポートでも何度も登場されていますね。SEカレッジでは本当に多くのインフラ系コースで登壇頂いています。

またコースの狙いとして、Dockerを触ってイメージを掴んでもらえればとメッセージされていました。
Docker とは
- Docker (旧dotCloud) が2013年に発表した、Linuxコンテナを管理・実行するプラットフォームとして発表
- オープンソースソフトウェア
- AWS、Google Cloud Platform、Windows Azureなど大手クラウドベンダーが次々と対応を発表
- 特に Google が開発したオーケストレーションツール として kubernetes (k8s) が注目されている
Kubernates を使ったオーケストレーションまで使っているのは、国内ではWebサービス/モバイルアプリでの開発事例で出てきていますね。
- Docker と Kubernetes を使って『変化に強いインフラ』を作る | Wantedly Engineer Blog 2016年12月15日
- Google Cloud Platform Japan 公式ブログ: 株式会社メルカリの導入事例:Kubernetes を駆使したマイクロサービス化でグローバルサービスの開発効率を劇的に向上 2018年1月22日
まだSIなど受託開発では大手各社が2017年後半にソリューションを発表しているので、事例はこれからのようですね。期待です。
私が参加したビッグデータを扱う学生向けハッカソンでも運営側からDockerイメージを配布して、開発環境構築をラクにしていました。
コンテナとは
仮想化との違い
- ハイパーバイザー型はサーバーを仮想化する
- Dockerはアプリケーションを仮想化する
- 同じメモリなら軽く動く
- オーバーヘッドが少ない
- 通常の仮想化の場合、仮想化ハードウェアを使っている
- Dockerなどコンテナの場合、ハードウェアをラップしない
- このためLinux上でwindowsコンテナを動かすことはできない
- ただユーザーから見ると変わりはない
- 物理マシンからは何が動いているのかわからない
ip a
で見るとdocker 0
のように表示される- Dockerサーバがルーティングしている
コンテナを使うとレイヤがこれだけシンプルになるのですね。とはいえ、データセンター側もWindowsと共存できなかったりするので、IaaSやHaaSベンダーには悩ましいかも知れません。
軽量OS
- コンテナだけが動けばよいので、普通のLinuxではいらない機能が多い
- 軽量OSというのがある
- 今日はCentOSとcoreOSとでDockerを動かしてみます
最近では2018年5月に Red Hat がcoreOSを買収していますね。
Dockerの構成
一口にDockerといっても幾つかのサービス群を総称しているので、それぞれどんなものがあるか解説です。
ここにオーケストレーションが無いので、先の kubernetes などがあるのですね。
演習
ここからは実際にDockerを使った演習です。
Dockerを動かしてみましょう
まずは CentOS 上でDockerをインストールして、動かしてみます。その後に、CoreOSで動かした場合を比較します。
- Docker をインストール
# yum -y install docker
- Docker Hub からイメージをダウンロード
# docker pull イメージ名
- ここでは
httpd
をインストール - イメージ名で
user_account/image
とあると誰かが作ったイメージ
- ここでは
- コンテナIDは長くて人間では扱えないので、名前付けができるオプションがある
--(name)
- コンテナを動かしてみます
# docker run -d -p 8080:80 --name www httpd
- 実際立ち上がったサーバーを見たり、停止したり開始したりDockerコマンドを実行
- Docker Hubから自分が興味のあるものをダウンロードしてさまざまに構築
CoreOSで動かす
続いて、今度はCoreOSでやってみます。CoreOSでは実際にDockerイメージを作ることもやってみました。
- CoreOSをインストール
- CoreOSからDockerコマンドで
docker pull [イメージ]
で動かしてみる - 同じように
httpd
を使ってWebサーバーを立ち上げる - 簡単なindexページを作って動かす
- 今度は構築したwebサーバーを使ってDockerイメージを作成
- 作ったイメージをもとにビルド
docker build -t my-httpd
途中、Cent OSとメモリ消費量を比較したところ、やはりコンテナが圧倒的に小さかったです。
GUIでDocker
最後におまけとしてCUIではない操作方法として Rancher を使って、GUIでDockerを触ってみて、コースは修了しました。
まとめ
このコースではコンテナと仮想化技術との違いなど基礎的な解説に加えて、後半はDockerを使って、様々に環境を構築してみました。
かなりラクにイメージをビルドできるので、個人的にはハマりポイントがとても少なく構築できたのが印象的でした。一方で、Dockerを使ってどのように開発環境に適用していくのか、アプリケーションを含めたイメージを作ったり、実際に開発チームで更新・運用するときには練度が必要かも知れません。
SEカレッジでも取り上げられそうですが、現場で実践したいというニーズがあるのかまだ未知数です。もし参加してみたいという方がいらっしゃれば、所属企業のご担当者様もしくは参加アンケートから、ぜひお声をお寄せ下さいませ !!
ひきつづき、はじめてのDockerは開催されていますので、ちょっと気になる、今後の参考までに見ておきたい方にはオススメです !!
label SE カレッジの無料見学、資料請求などお問い合わせはこちらから!!
label SEカレッジを詳しく知りたいという方はこちらから !!

SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。