DockerのデフォルトDNS(8.8.8.8など)は私が働いている場所でブロックされているので、デフォルトを変更したいと思います。私はこれを使用してこれを行うことができました
$ docker daemon --dns <mydnsaddress>
ただし、Dockerの公式ドキュメントではこの方法が推奨されているため、代わりにsystemdドロップインを使用してこれを実行したいと思います。 /etc/systemd/system/docker.service.d/dns.conf
ファイルを作成し、次のようなものを使用しました。
[Service]
DNS=<mydnsaddress>
しかし、変数名が何であるかはわかりません。これを設定するにはどうすればよいですか?さらに重要なことに、Dockerのsystemdドロップインで使用できるすべての構成変数を文書化したページはありますか?
(ところで、これはUbuntu15.10のDocker1.9ですが、バグは疑われません)
.conf
内のすべての/etc/systemd/system/docker.service.d
ファイルは、/usr/lib/systemd/system/docker.service
ファイルの設定を無効にします。これはほとんどあなたが試したことです。
DNS=..
行を挿入する代わりに、ExecStart=
部分を/usr/lib/systemd/system/docker.service
ファイルからdns.conf
(またはmydocker.conf
)にコピーする必要があります。 daemon
のExecStart
部分の後に--dns $ip
を追加します。例えば。:
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --dns 192.168.1.1 -H fd://
ここで、192.168.1.1
はDNSサーバーのIPです。
ここで、systemctlを介してdockerを再起動すると、dockerは独自のDNSで再起動するはずです。 (systemctl status docker.service | grep dns
で確認できます)。
Systemctlは、最初にクリアされた場合にのみExecStartを無効にするため、空のExecStart=
が必要であることに注意してください。
また、systemctl daemon-reload
でファイルを編集した後は、/etc/systemd/system/
が必要であることに注意してください。
最後に、一部のシステムでは、docker.service
は/usr/lib/systemd/system/
ではなく、/lib/systemd/system/
にあります。
はい、@ steviethecatによる以前の回答に同意しましたが、Dockerを再起動すると上書きがデフォルトに変更されるため、以下の手順に従いました。 Dockerバージョン18.09.2を使用して、
リンクをたどった https://success.docker.com/article/using-systemd-to-control-the-docker-daemon
Sudo systemctl edit docker //this opens new file use as overwrite file.
以下の行を追加します。この値を設定する前に、ExecStart =があることを確認してください。詳細を含む上記のリンク。
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --dns 192.168.1.1 -H fd://
ファイルに追加された行の上で、行の下で実行します。
Sudo systemctl daemon-reload
systemctl restart docker
systemctl status docker