Mac 版 Docker Desktop の設定変更

このページでは、 Docker Desktop の設定と管理の方法に関して説明します。

Preferences に移動するには、以下いずれかです。

  • Docker メニュー whale から Preferences を選びます。

  • Docker ダッシュボードから Preferences アイコンを選びます。

General

設定画面の General タブでは、Docker の起動や他の設定を調整できます。

  • Start Docker Desktop when you log in (ログイン時に Docker Desktop を起動):マシンにログインする時、自動的に Docker Desktop を起動する時に選びます。

  • Choose Theme for Docker Desktop (Docker Desktop のテーマ選択):Docker Desktop に LightDark どちらのテーマを適用するか選びます。あるいは、 Docker Desktop で Use System Settings を設定できます。

  • Use integrated container terminal (コンテナ ターミナルの統合を使う):Docker ダッシュボードから実行中のコンテナに対して直接実行するかどうかを選びます。詳しい情報は Containers を見渡す をご覧ください。

  • Include VM in Time Machine backups (タイムマシン バックアップに仮想マシンを含める):このオプションを選択すると、Docker Desktop 仮想マシンをバックアップします。このオプションは、デフォルトでは無効です。

  • Use gRPC FUSE for file sharing (ファイル共有に gRPC FUSE を使用):このチェックボックスをクリアすると、代わりに古い osxfs ファイル共有を使います。

  • Send usage statics (利用統計情報の送信): デフォルトでは、Docker Desktop は診断情報・クラッシュ報告・利用データを送信します。この情報は、 Docker の改善やアプリケーションの問題解決に役立ちます。止めるにはチェックボックスを空にします。Docker は定期的に更なる情報を訊ねるかもしれません。

  • Show Weekly tips :Docker の利用に役立つアドバイスや提案を表示します。

  • Open Docker Desktop dashboard at startup :Docker Desktop の起動時に、ダッシュボードを自動的に開きます。

  • Use Docker Compose V2 :このオプションを選択すると、 docker-compose コマンドが Docker Compose V2 を使えるようにします。詳しい情報は Docker Compose V2 をご覧ください。

Resources(リソース)

Resources (リソース)タブでは、CPU 、メモリ、ディスク、プロキシ、ネットワーク、その他のリソースを設定できます。

ADVANCED(高度な設定)

Advanced タブでは、 Docker が利用できるリソースを制限します。

Advanced 設定とは、

  • CPUs (CPU):デフォルトでは、 ホストマシン上で利用可能なプロセッサ数の半分を、Docker Desktop が使います。処理能力を向上するには、この値を高くします。減らすには、数値を低くします。

  • Memory (メモリ):デフォルトでは、 マシン上で利用可能な全メモリから 2 GB の実行メモリを使用する設定です。RAM を増やすには、この値を高くします。減らすには、値を低くします。

  • Swap (スワップ): 必要になるスワップファイル容量を設定します。デフォルトは 1 GB です。

  • Disk image size (ディスクイメージ容量):ディスクイメージの容量を指定します。

  • Disk image location (ディスクイメージの場所):Linux ボリュームの場所を指定します。ここにコンテナとイメージが置かれます。

また、ディスクイメージは別の場所に移動できます。ディスクイメージの指定先に既にイメージがある場合は、既存のイメージを使うか置き換えるか訊ねる画面を表示します。

FILE SHARING(ファイル共有)

Linux コンテナと共有したいローカルのディレクトリを選択します。これはホスト上の IDE を用い、コンテナ内でコードの実行やテストをしている場合、ソースコードの編集に特に役立ちます。

デフォルトでは /Users/Volume/private/tmp/var/folders ディレクトリが共有されます。プロジェクトがこのディレクトリ外であれば、必ずこのリストに追加する必要があります。そうしなければ、 Mounts denied (マウント拒否)や cannot start serice (サービスを開始できない)エラーが実行時に出るでしょう。

ファイル共有を設定するには:

  • Add a Directory(ディレクトリの追加)+ をクリックし、追加したいディレクトリを選択します。

  • Remove a Directory(ディレクトリの削除) :削除したいディレクトリの横にある - をクリックします。

  • Apply & Restart (適用と再起動)によって、対象ディレクトリが Docker の バインド マウント(bind mount)-v )機能で利用できるようになります。

注釈

共有フォルダ上でのパーミッションとボリューム マウントの tips

  • コンテナ内で必要とするディレクトリのみ共有できます。ファイル共有は、あらゆる変更をホスト上の Linux VM に対して通知する必要があるため、オーバーヘッドを招きます。多くのファイル共有によって、高い CPU 負荷とファイルシステム性能の低下を引き起こす可能性があります。

  • 共有フォルダとは、実行しているコンテナ内から、ホスト上にあるアプリケーションのコードを編集できるように設計されています。そのため、キャッシュ用のディレクトリや、データベースのようなソースコード以外の場合には、Linux VM に保管される データ ボリューム名前付きボリューム(named volume) )や データ コンテナ を使うほうが、パフォーマンスが良くなります。

  • コンテナ内に自分のホーム ディレクトリ全体を共有しようとすると、 MacOS はリマインダやダウンロードといったホームディレクトリ上の個人データエリアへのアクセスを、 Docker に許可するかどうか確認を求めます。

  • Linux のファイルシステは 大文字と小文字を区別する(case-sensitive) のに対し、 Mac のファイルシステムはデフォルトでは 大文字と小文字を区別しません(case-insensitive) 。Linux 上では testTest という2つのファイルを作成できますが、 Mac の場合は、これらファイル名を使うと、どちらも元になっている同じファイルにを参照します。これにより、Mac 上では(ファイル内容を共有していると)アプリケーションが正しく動かないよう問題を引き起こす可能性があり、 Linux の本番環境では(ファイル対象が明確に異なるため)障害になるでしょう。これを避けるため、 Docker Desktop は共有している全てのファイルを、オリジナルの大文字か小文字かにもどづいて関連づけます。そのため、 test という名前のファイルを作成すると、必ず test として開かれます。 Test を開こうとしても、 No such file or directory のエラーになります。同様に、まず test という名前でファイルを作成すると、次に Test という名前でファイルを作成しようとしても失敗します。

詳しい情報は、 /Users ディレクトリ外でファイル共有が必要なボリュームのマウント をご覧ください。

PROXIES(プロキシ)

次のような時、 HTTP/HTTPS プロキシを使えます。

  • Docker にログイン

  • イメージの送受信

  • イメージ構築中に成果物を取得

  • コンテナが外部ネットワークと通信

  • イメージの脆弱性検査

これらの使用例ごとに、設定は若干異なります。

ホストが静的な HTTP/HTTPS プロキシ設定を使う場合、この設定を Docker Desktop が自動的に読み込み、これらの設定を Docker へのログインやイメージ送受信のために使います。

ホスト上がより詳細な設定を使う場合は、 Manual proxy configuration (手動プロキシ設定)を有効にし、 http://username:password@proxy:port の形式で上流のプロキシ URL を入力します。

イメージ構築やコンテナ実行中の HTTP/HTTPS トラフィックは、ログインやイメージ取得に使うのと同じ上流のプロキシに、透過的に転送されます。この挙動を上書きし、イメージ構築とコンテナ実行で異なる HTTP/HTTPS プロキシを使いたい場合は、 Docker クライアントの設定 をご覧ください。

イメージ検査に使う HTTPS プロキシを設定するには、 HTTPS_PROXY 環境変数を使って指定します。

NETWORK (ネットワーク)

Docker Desktop のネットワーク機能を、仮想プライベート ネットワーク(VPN)でも機能するように設定できます。インターネットとの疎通を有効にするには、ネットワーク アドレス変換(NAT)プリフィックスとサブネットマスクを設定します。

Docker Engine(エンジン)

Docker Engine のページでは、Docker デーモンの設定や、どのようにしてコンテナを実行するかを決められます。

デーモンの設定をするには、テキストボックス内に JSON 形式の設定ファイルとして入力します。オプションの一覧については、 Docker Engine の dockerd コマンドライン・リファレンス を御覧ください。

Apply & Restart (適用と再起動)をクリックし、設定を保存して Docker Desktop を再起動します。

Experimental Features(実験的機能)

実験的機能は、今後提供する機能を先行利用できます。各機能は、テストやフィードバックを意図した、参考程度のものです。そのため、リリース時までに警告が出たり、今後のリリースでは削除されたりする場合があります。本番向けの環境では、実験的機能を決して使わないでください。Docker は実験的機能に対するサポートを提供していません。

Docker CLI における現在の実験的機能一覧は、 Docker CLI Experimental features をご覧ください。

新しい Apple Virtualization framework を有効化

Use the new Virtualization framework (新しい Apple Virtualization framework を有効化)を選ぶと、 Docker Desktop は hypervisor.framework の代わりに、新しい virtualization.framework を使います。新しい仮想化フレームワークを有効化すると、初回は Kubernetes クラスタが確実にリセットされます。

VirtioFS の有効化

Docker Desktop for Mac は、 virtiofs と呼ばれる新しい実験的ファイル共有実装を、開発者が使えるようにしています。つまり、現時点でのデフォルトは gRPC-FUSE です。virtiofs は macOS 上でファイル共有パフォーマンスを著しく改善するのが分かっています。詳細はブログ投稿 Speed boost achievement unlocked on Docker Desktop 4.6 for Mac. をご覧ください。

virtioFS を有効化するには:

  1. macOS が以下のバージョンかどうかを確認

    • macOS 12.2 以上(Apple Silicon の場合)

    • macOS 12.3 以上(Intel の場合)

  1. virtioFS を有効化するには Enable VirtioFS accelerated directory sharing を選ぶ

  1. Apply & Restart をクリック

Kubernetes

Docker Desktop には 単独(standalone) の Kubernetes サーバが入っています。Kubernetes は Mac ホスト上で実行できますので、Kubernetes 上に Docker ワークロードを試験的にデプロイできます。Kubernetes サポートの有効化と、Docker コンテナとして Kubernetes のスタンドアロン インスタンスをインストールかつ実行するには、 Enable Kubernetes を選びます。

Docker コマンドを使って内部コンテナを表示するには、 Show system containers (advanced) を選択します。

すべてのスタックと Kubernetes を削除するには、 Reset Kubernetes cluster を選択します。

Docker Desktop と Kubernetes を統合して使うための詳しい情報は Kubernetes をご覧ください。

Software Updates (ソフトウェア更新)

Software Updates (ソフトウェア更新)セクションは、Docker Desktop で利用可能な更新バージョンを通知します。新しい更新があれば選択肢があります。すぐにダウンロードと更新をするか、あるいは、 Release Notes (リリースノート)のオプションで更新版で何が入ったのかを確認します。

チェックボックス Automatically check for updates をクリアすると、自動更新の確認をしません。無効化の通知は、 Docker メニューと、 Docker ダッシュボード上の通知バッジからも分かります。手動で更新を確認するには、 Docker メニューから Check for updates オプションを選びます。

Docker Desktop の新しい更新の自動ダウンロードを、バックグラウンドで行いたい場合は、 Always download updates を選びます。これは、Docker の更新版が利用可能になると、新しいバージョンをダウンロードします。この設定をするには、 Docker メニューだけでなく、 Docker ダッシュボードの Updates セクションからも行えます。

Extensions

Extensions タブを使い、次のことができます。

  • Docker Extensions の有効化

  • Docker マーケットプレイスを通して配布されるエクステンションのみ許可

  • Docker Extensions システムコンテナの表示

Docker Extensions に関する詳しい情報は、 Extensions をご覧ください。

参考

Change Docker Desktop preferences on Mac

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