これは、エンジニア未経験のど素人が、終末エンジニアとして
PythonとFlaskでWebアプリを作成するためのメモ記事です。
ランディングページ
Flask
[Docker] このページ
Dockerコマンド
Web開発
このページはDocker編のメインページであり、
Dockerの基礎知識と、Docker開発に必要な環境に絞って記載します。
細かいコマンドや、FlaskのTutorialアプリのDockerコンテナ内での再現については別途作成予定です。
[flaskrをDockerコンテナ内に再現してみた] Coming Soon…
#Dockerとは何か?
2017年1月とちょっと古い記事になるんですが、@itの記事をかいつまみます。
・Dockerは仮想化のためのツールである(※仮想化とは、一つのPC上で複数のOSを操作できる様にすること。OracleのVirtualBoxとか)
・Dockerの仮想化は「コンテナ管理型」と呼ばれ「ハイパーバイザー型」や「ホスト型」に対して軽量なのが特徴である
・DockerはDockerイメージと呼ばれる概念でアプリケーション開発に必要な環境とアプリ自身をパッケージ化しユーザー間で共有できる
・Linuxに付属のコンテナ管理機能に加えAPIを使って全世界の開発者同士の成果物を渡し合える
つまり、Dockerは「OSと切り離し、開発環境とアプリだけをパッケージ化する事により、開発者と管理者に負担が大きい従来の開発プロセスを簡易化し、高速化した」と言う事になるんだと思います。
従来の仮想化ツールが
1)OS(ホスト)上にもう一つOS(ゲスト)を作る
2)ゲストOS上に開発環境を築く
3)ゲストOS上の開発環境上でアプリケーションを作成する
と言うステップを踏んでいたのに対し、Dockerは
1)OS(ホスト)上に仮想化された開発環境を築く
2)開発環境上でアプリケーションを作成する
と言うステップらしく「OSと開発環境を切り離し、開発環境だけ仮想化する事で」軽量な仮想化環境を実現しているようです。
言い方を変えると、従来の仮想化の思想が”PC上にもう一つPCを作る(=2つのOS)”なのに対し、Dockerは”OSは一つ。開発環境は2つ”となっておりそれはもはや従来の定義における仮想化とは言えない気がするけども従来の重い仮想化に対し、軽妙な仮想化を提供できるようになったわけです。
このような「コンテナ管理型」のシステムを実現するために、DockerはLinuxに依存しています。
ですが、WindowsOSユーザーが使えないと言うわけではなく、Winユーザー向けにもDocker for Windowsが2016年7月に正式リリースされ、ハードルが下がりました。
ちなみに、LaptopはMacBookを、DeskTopはLenovoを使っている自分はDocker for Windowsを知らずに、Docker Composeを未だに使っていました。この機会にDocker for Windowsに切り替えようかしら・・・
#Dockerのインストールおよび必要なDocumentsについて
インストールは英語の公式サイトから。
Docker for Ubuntu
Docker for Mac
Docker for Windows
英語の公式サイト
Docker ドキュメント日本語化プロジェクト
続きは後日更新予定