Docker/Kuberneter学習
コンテナとは
コンテナは1つの共有されたOS上で独立したアプリケーションの実行環境を作成する技術です。コンテナはホスト上で複数実行でき、各実行環境はホストOSから隔離されます。コンテナ内では実行されるプロセスからあたかもOS環境を占有しているかのように見えます。ファイル、プロセス、ネットワークなどアクセスできるシステム上のリソースの多くもホストOSから隔離されています。
Dokcerとは
Dockerは、アプリケーションとその実行環境を「コンテナ」という単位でパッケージ化し、どこでも同じように動作させるためのコンテナ技術、およびそれを実現するプラットフォームのこと。
コンテナを実行してみよう
// コンテナ実行
$ docker run -it ubuntu:22.04 /bin/bashコンテナイメージ
コンテナの実行にはそのもととなる「コンテナイメージ」が必要になります。コンテナイメージはコンテナで実行するアプリケーションやその実行に必要な依存ファイル群を含めたデータです。実際にコンテナ内に設定する環境変数などの実行環境自体の設定情報も含まれます。
コンテナイメージは使用することでチームや組織で共有しやすくなる
コンテナイメージを使用することで他の人に共有しやすくなります。このワークフローを「Build、Ship、Run」というものがあります。
- Build:コンテナイメージの作成
- Ship:コンテナイメージの共有
- Run:コンテナイメージの実行
コンテナ技術の基本的な特徴
1.軽量な実行環境
リソースが隔離されたプロセスとして実行される
2.高いポータビリティ
高い挙動再現性と標準仕様による統一的な操作
3.エコシステム
OCI、CNCFと開発者コミュニティ
DockerとKubernetes
- Docker:単一マシン上でのコンテナ群の管理、イメージの作成、イメージの共有などコンテナにまつわる基本的なワークフローをサポートするためのツール
- Kubernetes:複数のマシンで構成される環境でのコンテナ管理に用いられる「オーケストレーションエンジン」ツール