27

(ubuntu 14.04のdockerバージョン1.4.1)で変更/etc/default/dockerしましDOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"たが、何の効果もありません(ポートでリッスンしていません2375)。環境も機能しないことがわかったため、dockerはこの初期構成ファイルを読み取っていないようですexport http_proxy

のみsudo docker -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -d動作します。

それは本当に私を混乱させました!

4

9 に答える 9

15

systemd を使用する Debian/Ubuntu の以降のバージョンについては、こちらを参照してください。

このリンクは、DOCKER_OPTS で動作するように systemd ユニット ファイルを正しく変更する方法を説明しています: https://github.com/docker/docker/issues/9889

基本的に、/etc/systemd/system/docker.service.d/docker.conf ファイルを作成し、そこでオーバーライドを指定します。

systemd 環境で DOCKER_OPTS 環境変数を使用して docker を起動するには、前述のファイルで次のようなことを行う必要がありました。

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd://
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

現在の docker インストール プロセスは、systemd ユニット ファイルを無視しているようです。

于 2015-07-13T13:42:22.433 に答える
3

「同じ」問題に遭遇しました。

/etc/default/docker のすべてのオプションが実際にはデフォルトでコメントアウトされていることに気付きました。

DOCKER_OPTS の前の # を削除し、再起動すると、意図したとおりに機能しました。

以前の docker バージョン (1.3) では、デフォルトでこれらのオプションがコメントアウトされていなかったと思います。少なくとも、# 記号を削除する必要があったことを思い出せません。

于 2015-01-14T23:54:36.697 に答える
1

dockerソース コード ( config.go および flags.go ) を確認した後渡すことができるオプションはdocker$DOCKER_OPTS自体のオプションであり、-Hまたは--hostdocker デーモンのオプションであると言えます。問題を解決するための回避策として、使用している init スクリプト ファイルを編集して、-Hそこにオプションを含めることができます。例えば:

  • upstart init システムを使用している場合は、ファイルを編集して/etc/init/docker.conf、exec 行を次のように変更します。exec "$DOCKER" -H "tcp://127.0.0.1:2375" -H "unix:///var/run/docker.sock" -d $DOCKER_OPTS
  • sysvinit init システムを使用している場合は、ファイルを編集し/etc/init.d/dockerて開始行を次のように変更します。

次のコマンドを使用します。

start-stop-daemon --start --background \
    --no-close \
    --exec "$DOCKER" \
    --pidfile "$DOCKER_SSD_PIDFILE" \
    --make-pidfile \
    -- \
        -H "tcp://127.0.0.1:2375" \
        -H "unix:///var/run/docker.sock" \
        -d -p "$DOCKER_PIDFILE" \
        $DOCKER_OPTS >> \
        "$DOCKER_LOGFILE" 2>&1 
    log_end_msg $?
    ;;
于 2015-01-05T09:45:05.820 に答える