dockerチュートリアル1:概要、開発環境のセットアップ等
cmakeに引き続き何かのtutorialをやっていくシリーズ。今回はdockerです
- 割としっかりしたtutorialになっている気がする
https://docs.docker.com/get-started/
- docker はコンテナ上でアプリケーションのビルド・共有・実行を行うためのプラットフォーム
- コンテナを使ったアプリケーションのデプロイをコンテナ化(containerization)という
コンテナは新しい概念ではないが、アプリケーションのデプロイの簡潔化に利用する流れは新しい
人気の秘訣
- 柔軟性、軽量、ポータビリティ、粗結合、スケーラブル、セキュア
images and containers
- コンテナはプロセスであり、ホスト・他コンテナから分離するための機能が備わっている
- Docker imageが共有するコンテナごとのprivateなfile system
- imageはアプリの実行に必要な全て(コード、ランタイム、依存関係、オブジェクトetc...)を含む
Containers and virtual machines
- コンテナはネィティブ実行される
- ?
- ホストマシンのカーネルを各コンテナと共有する
- 各コンテナは別プロセスとして実行される
- 他の仮想化方法に比べ早い
- VMはハイパーバーザーを介したホストリソースへの仮想アクセスを行う
- アプリケーションを実行する以上のオーバーヘッドが発生することが多い。
install・実行等
docker run hello-world
- 上記でdocker hubから
hello-world
imageを取得し、containerを作成+実行する
docker container ls --all
- 上記でinstallしたimageや実行中のcontainerを確認可能