見出し画像の出典先
Docker: Separating Applications from Infrastructure
はじめに
こんばんは、Suzuka22です。しばらく記事の投稿をサボっていました。ごめんなさい。お盆休みが終わりますね。皆様、お盆はどうでしたか?私は実家の福岡に帰って沢山遊びました笑 さすがに分厚いロボット工学の本を持って帰るのは精神、肉体的に負担が大きいと判断したので持って帰りませんでした (それはそう)今週から仕事が始まるので仕事モードに切り替えます。本記事では新たに学んだことであるDockerについて書きます。
備忘録
コンテナ
さて、ここから本題に入ります。Dockerについて色々学んだのでここに備忘録を書きます。まずはコンテナに関して分かったことをここに書きます
(メモ書きレベルですみません)
- コンテナ:アプリの実行に必要な環境をひとまとまりにし、OS上で動作するプロセスのこと
- 他のプロセスから隔離してアプリを実行するプロセスのこと
- コンテナ技術:他のプロセスと隔離したアプリの実行環境が作れる技術のこと
- 仮想マシン:物理マシンの中にソフトウェアで物理マシンを再現。H/W(CPU、メモリなど)、ゲストOSを含む
- 依存関係の例:ライブラリBのバージョンが変わったらアプリAは実行することができない
- 物理マシンとはPCのこと
- ホストOS:仮想マシン内における本物のコンピュータのOSのこと[1]
- ハードディスクの上に本来のOSが入っている[1]
- ゲストOS:仮想マシン内における偽物のコンピュータのOSのこと[2]
- dockerを停止させたいときはdocker stop <コンテナ名> というコマンドを入力
Docker
- Dockerの特徴:アプリ+その動く環境」をまるごとパッケージ化にすることが出来るツール
- 「アプリ+その実行環境」をセットで持ち運べる仕組み
- 単一のマシン上でコンテナを簡単に作って動かして管理できるツールセット
- Dockerは作って、配布して、動かす
- OS、ライブラリのバージョンの差といった環境差異によるトラブルを防ぐ
- 動かない、動作が違うトラブルが減る
- プロジェクトごとに異なる実行環境を用意 (WSL2+docker)
- Dockerfileがあれば自動で環境構築が可
- Dockerの作成について
- コマンドの$docker image build:Dockerイメージ(コンテナの設計書)を作成
- Dockerfile:Dockerイメージの作成手順書
- DockerfileからDockerイメージを作成する
- コマンドの$docker image push:作成したDockerイメージを配布
- Dockerイメージをレジストリに配布
- レジストリ:windowsが使うカンペみたいなもの[3]
- ユーザがdocker hubというクラウド上のレジストリサービスにDockerイメージを配布[4]
- docker hubからDockerイメージを取得
- Docker hubから取得したDockerイメージを実行することでDocker コンテナとして利用可能
- コマンドの$docker container runでDockerコンテナを利用する