| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Docker」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
18行目: 18行目:
 
===実行ユーザーをroot以外にする===
 
===実行ユーザーをroot以外にする===
 
**コンテナない実行ユーザーの権限を最小化
 
**コンテナない実行ユーザーの権限を最小化
 +
 +
==コンテナ==
 +
*コンテナは2つのカテゴリに分類
 +
**システムコンテナ
 +
**アプリケーションコンテナ
 +
===システムコンテナ===
 +
*仮想マシンとよく似た動きをし完全なブートプロセスを実行
 +
*通常の仮想マシンに含まれるのと同様な、ssh,cron,syslogといったシステムサービスが含まれる
 +
===アプリケーションコンテナ===
 +
*通常はアプリケーションを一つだけ動かすと言う点でシステムコンテナとは異なる
 +
*コンテナ一つに対して一つしかアプリケーションを動かさないのは余計な制約に見えるかもしれないが、スケーラブルなアプリケーションを構築するためには適切な細分化の単位
 +
*[[Kubernetes]]のPodによってうまく活用できるデザイン哲学にもなっている
  
 
==Dockerfile==
 
==Dockerfile==

2020年9月12日 (土) 14:53時点における版

Docker

| 仮想化 | Kubernetes |

インストール

設計

1コンテナにつき1プロセス

  • 最も大事な観点。複数プロセスは非推奨

イミュータブルなインフラストラクチャイメージにする

  • コンテナイメージはバージョン管理できるため、コンテナ実行後ではなく、コンテナイメージに実行バイナリやリソースを可能な限り埋め込むようにする

軽量なDockerイメージにする

  • ノード上に使用するイメージがない場合、外部からダウンロードする必要がある
  • キャッシュなどの削除、Alpine Linuxなど軽量なディストリビューションの利用

実行ユーザーをroot以外にする

    • コンテナない実行ユーザーの権限を最小化

コンテナ

  • コンテナは2つのカテゴリに分類
    • システムコンテナ
    • アプリケーションコンテナ

システムコンテナ

  • 仮想マシンとよく似た動きをし完全なブートプロセスを実行
  • 通常の仮想マシンに含まれるのと同様な、ssh,cron,syslogといったシステムサービスが含まれる

アプリケーションコンテナ

  • 通常はアプリケーションを一つだけ動かすと言う点でシステムコンテナとは異なる
  • コンテナ一つに対して一つしかアプリケーションを動かさないのは余計な制約に見えるかもしれないが、スケーラブルなアプリケーションを構築するためには適切な細分化の単位
  • KubernetesのPodによってうまく活用できるデザイン哲学にもなっている

Dockerfile

FROMでベースイメージを指定して、RUNやCOPYなどのコマンドでイメージを作成する

  • Dockerfile
FROM ubuntu:latest
  • 実行
$ sudo docker build .
  • 確認
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              4e2eef94cd6b        9 days ago          73.9MB

コマンド

ネットワーク