JSON ファイルを使用した Settings Management の構成
Settings Management は、Docker Business 契約を持つ顧客のみが利用可能です。
このページでは、admin-settings.json
ファイルを使用して Settings Management を構成する方法について説明します。このファイルを使用して構成パラメータを指定し、ロックすることで、企業や組織全体で標準化された Docker Desktop 環境を構築できます。
Settings Management は、開発者にルートアクセスを許可しない組織向けに設計されています。
前提条件
まず、すべての Docker Desktop 開発者が Organization で認証を行うようにサインインの強制を行う必要があります。Settings Management は Docker Business 契約が必要であり、サインインを強制することで認証されたユーザーのみがアクセスでき、この機能が全ユーザーに一貫して適用されます。
手順1: admin-settings.json
ファイルを作成して適切な場所に保存
macOS や Windows でインストーラーの --admin-settings
フラグを使用して、admin-settings.json
を自動作成して正しい場所に保存するか、手動で設定します。
手動で設定する場合:
-
新しい空の JSON ファイルを作成し、
admin-settings.json
という名前を付けます。 -
以下の場所に
admin-settings.json
ファイルを保存します:- Mac:
/Library/Application\ Support/com.docker.docker/admin-settings.json
- Windows:
C:\ProgramData\DockerDesktop\admin-settings.json
- Linux:
/usr/share/docker-desktop/admin-settings.json
ファイルを保護されたディレクトリに配置することで、開発者がこれを変更できないようにします。
💡重要 ファイルを指定された場所にプッシュする能力があることが前提です。これには JAMF などのデバイス管理ソフトウェアを使用できます。
- Mac:
手順2: ロックしたい設定を構成
一部の構成パラメータは、特定のプラットフォームや特定のDocker Desktopバージョンにのみ適用されます。以下の表で該当箇所を確認してください。
admin-settings.json
ファイルには、ネストされた構成パラメータのリストが必要であり、各パラメータには locked
プロパティが含まれている必要があります。要件に応じて構成パラメータを追加または削除できます。
-
locked: true
の場合、ユーザーは Docker Desktop や CLI からこの設定を編集することはできません。 -
locked: false
の場合、工場出荷時のデフォルト設定に似た動作をしますが、以下のような違いがあります:- 新しいインストールの場合、
locked: false
は Docker Desktop のダッシュボードに関連する設定を事前に入力しますが、ユーザーはそれを変更することができます。 - 既に Docker Desktop がインストールされている場合、
locked: false
は無視されます。既存のユーザーが設定を変更している場合、その設定は対応する設定ファイル(たとえばsettings-store.json
やsettings.json
(Docker Desktop 4.34以前)やdaemon.json
)に保存されています。このような場合、ユーザーの設定が優先され、値は変更されません。この動作を制御するにはlocked: true
を設定してください。
- 新しいインストールの場合、
以下の admin-settings.json
コード例と表は、必要な構文、パラメータ、および値の説明を示しています:
{
"configurationFileVersion": 2,
"exposeDockerAPIOnTCP2375": {
"locked": true,
"value": false
},
"proxy": {
"locked": true,
"mode": "system",
"http": "",
"https": "",
"exclude": [],
"windowsDockerdPort": 65000,
"enableKerberosNtlm": false
},
"containersProxy": {
"locked": true,
"mode": "manual",
"http": "",
"https": "",
"exclude": [],
"pac":"",
"transparentPorts": ""
},
"enhancedContainerIsolation": {
"locked": true,
"value": true,
"dockerSocketMount": {
"imageList": {
"images": [
"docker.io/localstack/localstack:*",
"docker.io/testcontainers/ryuk:*"
]
},
"commandList": {
"type": "deny",
"commands": ["push"]
}
}
},
"linuxVM": {
"wslEngineEnabled": {
"locked": false,
"value": false
},
"dockerDaemonOptions": {
"locked": false,
"value":"{\"debug\": false}"
},
"vpnkitCIDR": {
"locked": false,
"value":"192.168.65.0/24"
}
},
"kubernetes": {
"locked": false,
"enabled": false,
"showSystemContainers": false,
"imagesRepository": ""
},
"windowsContainers": {
"dockerDaemonOptions": {
"locked": false,
"value":"{\"debug\": false}"
}
},
"disableUpdate": {
"locked": false,
"value": false
},
"analyticsEnabled": {
"locked": false,
"value": true
},
"extensionsEnabled": {
"locked": true,
"value": false
},
"scout": {
"locked": false,
"sbomIndexing": true,
"useBackgroundIndexing": true
},
"allowExperimentalFeatures": {
"locked": false,
"value": false
},
"allowBetaFeatures": {
"locked": false,
"value": false
},
"blockDockerLoad": {
"locked": false,
"value": true
},
"filesharingAllowedDirectories": [
{
"path": "$HOME",
"sharedByDefault": true
},
{
"path":"$TMP",
"sharedByDefault": false
}
],
"useVirtualizationFrameworkVirtioFS": {
"locked": true,
"value": true
},
"useVirtualizationFrameworkRosetta": {
"locked": true,
"value": true
},
"useGrpcfuse": {
"locked": true,
"value": true
},
"displayedOnboarding": {
"locked": true,
"value": true
},
"desktopTerminalEnabled": {
"locked": false,
"value": false
}
}
一般設定
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
configurationFileVersion | 設定ファイルフォーマットのバージョンを指定します。 | ||
analyticsEnabled | value が false に設定されている場合、Docker Desktop は使用状況統計を送信しません。 | ||
disableUpdate | value が true に設定されている場合、Docker Desktop の更新の確認および通知が無効になります。 | ||
extensionsEnabled | value が false に設定されている場合、Docker 拡張機能が無効になります。 | ||
blockDockerLoad | value が true に設定されている場合、ユーザーは docker load を実行できず、エラーが発生します。 | ||
displayedOnboarding | value が true に設定されている場合、新規ユーザーへのオンボーディング調査が表示されなくなります。value を false に設定しても影響はありません。 | Docker Desktop バージョン 4.30 以降 | |
desktopTerminalEnabled | value が false に設定されている場合、開発者は Docker Desktop を使用してホストマシンに直接アクセスしたり、コマンドを実行することができません。 | ||
exposeDockerAPIOnTCP2375 | Windows のみ | Docker API を指定されたポートで公開します。value を true に設定すると、Docker API がポート 2375 で公開されます。注意: これは認証されていないため、適切なファイアウォールルールで保護されている場合のみ有効にしてください。 |
ファイル共有とエミュレーション
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
filesharingAllowedDirectories | 開発者がファイル共有を追加できるパスを指定します。$HOME 、$TMP 、または $TEMP をパス変数として受け入れます。パスが追加されると、そのサブディレクトリも許可されます。sharedByDefault を true に設定すると、工場出荷時リセット時または Docker Desktop の初回起動時にそのパスが追加されます。 | ||
useVirtualizationFrameworkVirtioFS | macOS のみ | value が true に設定されている場合、VirtioFS がファイル共有メカニズムとして設定されます。注意: useVirtualizationFrameworkVirtioFS と useGrpcfuse の両方が true に設定されている場合、VirtioFS が優先されます。また、両方が false の場合、osxfs がファイル共有メカニズムとして設定されます。 | |
useGrpcfuse | macOS のみ | value が true に設定されている場合、gRPC Fuse がファイル共有メカニズムとして設定されます。 | |
useVirtualizationFrameworkRosetta | macOS のみ | value が true に設定されている場合、Docker Desktop は Apple Silicon 上で x86_64/amd64 バイナリのエミュレーションを加速するために Rosetta をオンにします。この設定により、仮想化フレームワークの使用も自動的に有効になります。 | Docker Desktop バージョン 4.29 以降 |
Docker Scout
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
scout | useBackgroundIndexing を false に設定すると、イメージストアに読み込まれたイメージの自動インデックス作成が無効になります。sbomIndexing を false に設定すると、Docker Desktop または docker scout CLI コマンドを使用してイメージをインデックス作成することができなくなります。 |
プロキシ
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
proxy | mode を system に設定すると、Docker Desktop はプロキシ値をシステムから取得し、http 、https 、および exclude に設定された値を無視します。プロキシサーバーを手動で設定するには、mode を manual に変更します。プロキシポートがカスタムの場合、http または https プロパティで指定します(例: "https": "http://myotherproxy.com:4321" )。exclude プロパティには、プロキシをバイパスするホストおよびドメインのコンマ区切りリストを指定します。 | ||
windowsDockerdPort | Windows のみ | Docker Desktop の内部プロキシを Windows Docker デーモンが接続できるようローカルでこのポートに公開します。値が 0 の場合、ランダムな空きポートが選択されます。値が 0 より大きい場合、その値がポートとして使用されます。デフォルト値は -1 で、これによりこのオプションが無効になります。 | |
enableKerberosNtlm | value が true に設定されている場合、Kerberos および NTLM 認証が有効になります。デフォルトは false です。詳細は設定ドキュメントを参照してください。 |
コンテナプロキシ
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
containersProxy | エアギャップ環境のコンテナを作成します。詳細はエアギャップコンテナをご覧ください。 | Docker Desktop バージョン 4.29 以降 |
Linux VM
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
linuxVM | Linux VM オプションに関連するパラメーターと設定をグループ化しています。 | ||
wslEngineEnabled | Windows のみ | value を true に設定すると、Docker Desktop は WSL 2 ベースのエンジンを使用します。これにより、インストール時に --backend=<backend name> フラグで設定された内容が上書きされます。 | |
dockerDaemonOptions | value を true に設定すると、Docker エンジン構成ファイルのオプションが上書きされます。詳細は Docker Engine リファレンスをご覧ください。セキュリティ向上のため、一部の構成属性は Enhanced Container Isolation が有効な場合に上書きされる可能性があります。 | ||
vpnkitCIDR | *.docker.internal のための vpnkit DHCP/DNS に使用されるネットワーク範囲を上書きします。 |
Windows コンテナ
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
windowsContainers | windowsContainers オプションに関連するパラメーターと設定をグループ化しています。 | ||
dockerDaemonOptions | Linux デーモン構成ファイルのオプションを上書きします。詳細は Docker Engine リファレンスをご覧ください。 |
この設定は Docker Admin Console では設定できません。
Kubernetes
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
kubernetes | enabled を true に設定すると、Docker Desktop 起動時に Kubernetes の単一ノードクラスタが開始されます。showSystemContainers を true に設定すると、Kubernetes コンテナが Docker Desktop ダッシュボードおよび docker ps コマンドで表示されます。imagesRepository を使用して、Docker Desktop が Kubernetes イメージをプルするリポジトリを指定できます(例: "imagesRepository": "registry-1.docker.io/docker" )。 |
開発中の機能
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
allowExperimentalFeatures | value を false に設定すると、実験的機能が無効になります。 | ||
allowBetaFeatures | value を false に設定すると、ベータ機能が無効になります。 |
Enhanced Container Isolation (強化されたコンテナー分離)
パラメーター | OS | 説明 | バージョン |
---|---|---|---|
enhancedContainerIsolation | value を true に設定すると、Docker Desktop はすべてのコンテナを Linux ユーザー名前空間を介して非特権として実行し、Docker Desktop VM 内の重要な構成を変更できないようにし、他の高度な分離技術を使用します。詳細は Enhanced Container Isolation をご覧ください。 | ||
dockerSocketMount | デフォルトでは、Enhanced Container Isolation は Docker エンジンソケットのコンテナへのバインドマウント(例: docker run -v /var/run/docker.sock:/var/run/docker.sock ... )をブロックします。これにより、制御された方法で緩和することができます。詳細は ECI 構成をご覧ください。 | ||
imageList | Docker エンジンソケットをバインドマウントできるコンテナイメージを指定します。 | ||
commandList | バインドマウントされた Docker エンジンソケットを介してコンテナが実行できるコマンドを制限します。 |
手順3: Docker Desktop の再起動
admin-settings.json
ファイルで行った変更が期待通りに動作するかをローカルでテストしてください。
変更を適用するには:
-
新しいインストールでは、開発者が Docker Desktop を起動して、Organization に認証する必要があります。
-
既存のインストールでは、Docker メニューから Docker Desktop を終了し、再起動する必要があります。すでにサインインしている場合、再度サインインする必要はありません。
💡重要 Docker メニューから Restart(再起動) を選択するだけでは不十分です。これは Docker Desktop の一部のコンポーネントのみを再起動するためです。
開発者の作業を妨げないようにするため、Docker は設定変更後に自動的に再起動や再認証を要求しません。
Docker Desktop では、関連する設定がグレーアウトされ、「Locked by your administrator(管理者によってロックされています)」というメッセージが表示されます。