試して学ぶ Dockerコンテナ開発
内容紹介
Dockerでさまざまな実行環境、開発環境を構築するための実践ノウハウ
コンテナ型の仮想環境を作成、実行するためのプラットフォーム、Dockerの実践解説書。
本書は、エンジニアが普段行うようなWebアプリケーション開発環境の構築を、Dockerを用いて行うにはどのようにすればよいか、またその環境をDockerで作ることによってどのように開発を効率化させることができるか、にフォーカスした内容となっています。
PHPのLaravel、Node.jsのNuxt.js、RubyのSinatraとRuby on Rails、PythonのPyTorchといった、Webアプリケーションや機械学習の領域で用いられているものを対象として取り上げました。それぞれの解説は独立したものとなっているので、読者の方が使っている言語はもちろん、経験していない言語やフレームワークを試すのにも良いでしょう。
本書の構成は次のようになっています。
Chapter1「Dockerの基本」では、DockerやDocker Composeについて簡単に解説し、Docker環境のインストール手順を解説します。最後に、Dockerで使える機能を一望できるよう、Docker CLIやDocker Composeで使えるコマンドを一覧にまとめました。
Chapter2「実行環境としてのDockerイメージを構築する」では、Webアプリケーションの開発作業を想定し、Dockerでアプリケーションの実行環境を構築する手順について解説します。対象の言語環境はPHPのLaravel、Node.jsのNuxt.js、RubyのSinatraです。イメージ構築にあたってのポイントは、各々の環境で必要になるパッケージ(ライブラリ)のインストール手順です。
Chapter3「開発作業に適したDocker環境を構築する」では、Ruby on Rails(Rails)の環境を構築します。Railsは単体でも動作しますが、開発するにあたっては、データベースサーバーだけでなく、Springサーバーなどの常駐プロセスを動かす必要も出てきます。フロントエンドの開発スタイルによっては、さらにWebpackやVue.jsといったNode.jsの環境も必要になってきます。RubyとNode.jsの環境ではベースイメージが異なります。双方の言語を用意したイメージをビルドすることで、使い勝手の良い開発環境を作ることができます。
Chapter4「第三者が配布しているDocker環境をカスタマイズする」では、、第三者が配布している既存のDocker環境をカスタマイズする例として、ディープラーニングの環境をNVIDIA Dockerで動かす手順を解説します。Jupyter Notebookの開発元がJupyterアプリケーションの実行環境をDockerイメージとして配布しているので、その環境でJupyterLabを動かし、PyTorchを使えるようにし、最後にNVIDIA DockerでGPUを使った学習処理を評価してみます。
Chapter5「Dockerの機能を使いこなす」では、Dockerが提供している機能に対して、もう少し踏み込んだトピックを紹介します。イメージとレイヤー、エントリーポイント、ボリュームとネットワークなどの話題を解説しています。
充実のラインナップに加え、割引セールも定期的に実施中!
商品を選択する
フォーマット | 価格 | 備考 | |
---|---|---|---|
書籍 | 3,839円 | ||
3,839円 | ※ご購入後、「マイページ」からファイルをダウンロードしてください。 ※ご購入された電子書籍には、購入者情報、および暗号化したコードが埋め込まれております。 ※購入者の個人的な利用目的以外での電子書籍の複製を禁じております。無断で複製・掲載および販売を行った場合、法律により罰せられる可能性もございますので、ご遠慮ください。 |
備考
●櫻井 洋一郎(さくらい よういちろう)
Retty株式会社 エンジニア
東京大学大学院 情報理工学系研究科 創造情報学専攻2007年卒。
NECの開発部門に7年間勤務。仕事の傍ら個人でサービスを開発し、過去に多数のWebサービス、アプリを開発。その後Retty株式会社の創業期にJoinし2度のiOSアプリリニューアルを遂行。iOS開発以外にもサーバサイド開発、DockerとKubernetesを使った社内開発環境の構築など幅広い業務を行う。
また業務の傍らtry! Swift Tokyoでオーガナイザを務めるなどコミュニティ活動も行っている。
●村崎 大輔
2016年よりフリーランスエンジニア。博士(情報理工学)。
Web系のスタートアップ企業を中心に開発支援とコンサルティングを手がける。情報工学の見識と高い適応力が強み。
「新技術は食わず嫌いしない」がモットー。
章立て
Chapter1 Dockerの基本1-1 はじめに
この本の目的
本書を読み進めるにあたって
1-2 Dockerとは
コンテナ型の仮想化について
Dockerのイメージについて
Dockerを開発運用フローを改善するためのソリューションとして考える
Docker Composeについて
1-3 Dockerのインストール
Linux(Ubuntu)の場合
Windowsの場合
macOSの場合
1-4 Dockerのコマンドや命令
Docker CLIのコマンド
Dockerfileの命令
Docker Composeのコマンド
Chapter2 実行環境としてのDockerイメージを構築する
2-1 PHPの実行環境の構築
Laravelの環境
最初のプロジェクトの雛形作り
プロジェクトの雛形を使った実行環境イメージの作成
効率的なbuildをするための設定
ローカルでの開発環境
認証の導入
2-2 Node.jsの実行環境の構築
Node.jsの環境
最初のプロジェクトの雛形作り
プロジェクトの雛形を使った実行環境イメージの作成
効率的なbuildをするための設定
ローカルでの開発環境
Node実行環境のinitオプションについて
2-3 Rubyの実行環境の構築
Sinatraとは
前準備
Docker Composeのプロジェクトを作る
ベースイメージの動作を確認してみる
ホスト環境のディレクトリにアクセスできるように設定する
Sinatraをインストールする
Webサーバーを実行してみる
Chapter3 開発作業に適したDocker環境を構築する
3-1 Ruby on Railsの実行環境を構築する
Ruby on Railsとは
前準備
Docker Composeのプロジェクトを作る
Node.js環境を追加する
Node.jsのパッケージが使えるようにする
3-2 Railsのアプリケーションを作成する
Railsコマンドでファイル一式を作成する
Bundlerの設定を追加する
Gemfileの依存関係を修正する
Webサーバーを立ち上げて動作を確認する
3-3 開発に必要な構成を追加する
コンテナの立ち上げ時にクリーンアップをおこなう
開発用ツールの設定を修正する
Springを使うための構成を追加する
Webpackerを使うための構成を追加する
データベースサーバーを動かす(PostgreSQL)
データベースサーバーを動かす(MySQL)
Chapter4 第三者が配布しているDocker環境をカスタマイズする
4-1 JupyterLabの環境を作る
JupyterLabとは
前準備
Jupyter Docker Stacksについて
JupyterLabのコンテナを構成する
コンテナ環境のユーザー情報を設定する
認証情報を固定する
4-2 PyTorchが使えるようにする
PyTorchとは
ビルドされたイメージを使うようにする
ベースになっているイメージを確認しておく
PyTorchをインストールしたイメージをビルドする
PyTorchが使えることを確認する
PyTorchのコードを動かしてみる
4-3 コンテナ環境でGPU(CUDA)が使えるようにする
CUDAとは
NVIDIA Dockerを使ってみる
GPUで学習処理を実行してみる
4-4 Visdomでデータを可視化できるようにする
Visdomとは
Visdomサーバーが動作するコンテナを定義する
Visdomサーバーの動作を確認する
学習処理の進捗をリアルタイムで表示させてみる
デフォルト設定のままVisdomが使えるようにする
Chapter5 Dockerの機能を使いこなす
5-1 Dockerのイメージについて
イメージとレイヤー
レイヤーを調べる
イメージサイズを最適化する
マルチステージビルドを使う
Alpineイメージを使う
BuildKitを使う
5-2 エントリーポイントを使いこなす
ENTRYPOINTとCMDの違い
docker-entrypoint.shを用意する
ENTRYPOINTのたたき台
コマンドの内容を編集する
前処理を実行させる
5-3 ボリュームとネットワーク
Docker Desktop for Macでのボリューム共有
インストール時に作成されるネットワーク
独立したネットワークを利用する
プライベートIP帯の衝突回避について