2015-11-18 14 views
10

DockerのデフォルトDNS(8.8.8.8など)は私が働いている場所ではブロックされているので、デフォルトを変更したい。私はOSが稼働しているシステムでDockerデーモンのDNSを設定する

$ docker daemon --dns <mydnsaddress> 

を使用してこれを実行することができましたが、私は、公式ドッカードキュメントはこの方法をお勧めしているので、代わりにsystemdドロップインを使用して、これをやりたいです。私は/etc/systemd/system/docker.service.d/dns.confファイルを作って、このようなものを使用しました:

[Service] 
DNS=<mydnsaddress> 

しかし、私はちょうど変数名をすることになっているものは考えています。これはどのように設定するのですか?もっと重要なのは、Dockerのシステムドロップインで使用できるすべての設定変数を記述したページがあることです。

(私はすべてのバグを疑っていないもののところで、これは、Ubuntuの15.10でドッカー1.9である)

+1

ドッカーのドキュメントでは、DOCKER_OPTSを/ etc/default/dockerファイルに設定する方法について説明しています。https://docs.docker.com/engine/articles/configuring/ –

答えて

27

/etc/systemd/system/docker.service.dのすべての.confのファイルは、あなたが試したほとんど何/usr/lib/systemd/system/docker.serviceファイルから設定を却下します。

代わりにDNS=..ラインを入れて、あなたはdns.conf(またはmydocker.conf)に/usr/lib/systemd/system/docker.serviceファイルからExecStart=一部をコピーする必要があります。 ExecStartdaemon部分の後に--dns $ipを追加します。たとえば、

[Service] 
ExecStart= 
ExecStart=/usr/bin/docker daemon --dns 192.168.1.1 -H fd:// 

ここで、192.168.1.1はDNSサーバーのIPです。

これで、systemctlでドッキングを再開すると、ドッキングが自分のdnsで再起動するはずです。 (systemctl status docker.service | grep dnsで確認可能)。

systemctlは、最初にクリアされたExecStartのみを無効にするため、空のExecStart=が必要です。

/etc/systemd/system/にファイルを編集した後にsystemctl daemon-reloadが必要です。

いくつかのシステムでは、docker.service/usr/lib/systemd/system/にありませんが、/lib/systemd/system/にあります。

+1

ありがとうございます。しかし、これはかなり畳み込まれています...これは以前はsystemdの前に簡単でした。 –

関連する問題