個人用メモです。
自分のPCにdocker desktopをインストールした後のセッティングについて。
インストール後にいじるのはResourcesのADVANCED。バグが出たらExperimental Featureといったところ。
##目次
-
General
2. Start Docker Desktop when you log in
3. Include VM in Time Machine backups
4. Securely store Docker logins in macOS keychain
5. Send usage statistics -
Resources
3. ADVANCED
4. FILE SHARING
5. PROXIES
6. NETWORK - Docker Engine
- Experimental Feature
-
Kubernetes
6. Enable Kubernetes
7. Deploy Docker Stacks to Kubernetes by default
8. Show system containers
##Preferences Dockerの設定は5つの項目に分かれている。
- General
- Resources
- Docker Engine
- Experimental Feature
- Kubernetes
##1. General Generalの設定項目は4つ。
###1-1 Start Docker Desktop when you log in
ログイン時に Docker Desktop を起動するかどうか
###1-2 Include VM in Time Machine backups 仮想マシン(VM)のバックアップに関するオプションを設定かどうか。 デフォルトは無効。
####・Time Machineとは?
Time Machine は、Mac に組み込まれているバックアップ機能。
ここでは、写真や音楽をバックアップするのと同様にdockerのデータもバックアップするかどうかの設定となる。
###1-3 Securely store Docker logins in macOS keychain
macOSキーチェーンにDockerログイン情報を保存するかどうか。デフォルトオン。オフにできない。
チェックを入れておけば、docker desktop起動時にいちいちログインする手間を省ける。
####・キーチェーンとは?
Macでパスワードを安全に保存するコンテナ。
###1-4 Send usage statistics docker改善のため、利用統計の送信するかどうか。
診断情報、クラッシュレポート、利用状況の各情報を送信する。
##2. Resources CPU、メモリ、ディスク、プロキシー、ネットワークといったリソースを設定する。以下4つの項目から成る。
- ADVANCED
- FILE SHARING
- PROXIES
- NETWORK
###2-1 ADVANCED
dockerでPCをどの程度使うかの利用制限をする。
####2-1-1 CPUs
どれだけのプロセッサをdockerに割り当てるか。
デフォルトは、ホストマシン上で利用可能なプロセッサー数の半分になっている。
####2-1-2 Memory
dockerに割り当てるメモリ。デフォルトは2GB。
####2-1-3 Swap
dockerに割り当てるスワップファイルサイズ。デフォルトは1GB。
スワップとは物理メモリ以外にHDDなどのディスク領域を仮装メモリとして利用すること。
なので、メモリ要領が足りない(小さい)場合は、swapを多めに割り当てる。
####2-1-4 Disk image size
dockerのイメージやコンテナなどデータを保存する領域。現在使用中の要領も教えてくれる。
以下の場合だと、120GB割り当て、現在28.5GB使用中ということ。
Disk image size: 120 GB (28.5 GB used)
####2-1-5 Disk image location docker関連ファイルの保存場所。ディレクトリパスを指定する。
###2-2 FILE SHARING ローカルディレクトリとdockerを共有する。
ボリュームをマウントする際に必須。設定がないとエラー、Mounts denied(マウントが拒否されました)やcannot start service(サービスを起動できません)が発生する。
-
をクリックすると削除。+
で追加できる。
###2-3 PROXIES macOSのHTTP/HTTPSプロキシ設定をdockerに伝える。 dockerは指定したプロキシ情報を元にコンテナのプル処理を行う。
起動中のコンテナに対しては適用できない。
▼起動中のコンテナに対して実行する場合
$ docker run -e HTTP_PROXY=http://proxy.example.com:3128 alpine env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b7edf988b2b5
TERM=xterm
HOME=/root
HTTP_PROXY=http://proxy.example.com:3128
###2-4 NETWORK VPN(仮想プライベートネットワーク)上で動作するようにする。
##3. Docker Engine dockerデーモンがコンテナを実行する方法をJSONで指定する。
##4. Experimental Feature 将来リリース予定の試験的機能を有効にするかどうか。デフォルトではONになっている。
デフォルトONのため、docker desktopをアップデートしたタイミングでコンテナが起動できない、削除したはずのファイルがコンテナ側で消えてないなどの不具合が発生することがある。
その場合は、OFFにするかバージョンを戻す。
##5. Kubernetes クバネティスと読む。コンテナ仮想化ツールの運用管理・自動化を行うために開発されたオープンソースソフトウェア。
Kubernetes上に構築した Docker アプリをデプロイするテストができる。
Kubernetesを使うと、複数コンテナの運用をDockerのみの時よりも効率的にできるようになる。
###5-1 Enable Kubernetes
Dockerコンテナーとして起動するスタンドアロンのKubernetesインスタンスをインストールする。
▼スタンドアロンとは?
ネットワークに繋がれていない独立したシステム。セキュリティ面でメリットがある。
###5-2 Deploy Docker Stacks to Kubernetes by default
Kubernetesをデフォルトのオーケストレーターとして設定する。
オーケストレーションとは複数システムの調整と自動化の意味。なので、Kubernetesを使って自動化するという意味になる。
###5-3 Show system containers
Kubernetesコンテナーをdocker service ls などのコマンドで表示できるようにする。
デフォルトでは表示されない。