tanish-kr's learning log

Learning output log

Docker

Docker概要

コンテナとは

ホストOS上で独立したプロセスとして実行されるアプリケーション環境であり、OSの基本コマンドやアプリケーションの実行バイナリ、ライブラリなどの実行環境全体をパッケージ化し、それらをOSの分離された空間で実行する技術のこと

コンテナとVM

VMはハイパーバイザーが必須。コンテナはホスト上で直接実行しているプロセスと同等のため、オーバヘッドが少ない

インストール

Ubuntuへのインストール

  • パッケージのアップデート、依存パッケージのインストール
$ sudo apt-get update
$ sudo apt-get install \
   apt-transport-https \
   ca-certificates \
   curl \
   gnupg \
   lsb-release
  • GPG keyの追加
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • リポジトリの追加
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ apt-cache madison docker-ce
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
$ sudo docker run hello-world

Macへのインストール

https://docs.docker.com/desktop/mac/install/

Windowsへのインストール

https://docs.docker.com/desktop/windows/install/

Dockerの各種コンポーネント

Dockerエンジン

アプリケーションのパッケージ化やコンテナの実行を担う

Dockerイメージ

OSやアプリケーションを含んだテンプレートのベースイメージ

Docker Hubレジストリ

公開されているDockerイメージをSasS経由で提供する

Docker プライベートレジストリ

ローカルで作成・保管したイメージの保管庫

Dockerコンテナ

分離された名前空間とアプリケーションの実行環境

Dockerクライアント

ユーザーがコマンドを発行し、Dockerデーモンと通信を行う