2017-09-13 9 views
0

systemdを使ってCentOSの下にドッカー(v17.06.2-ce)をインストールしました。 Dockerは正常に動作し、UNIXソケットを待ち受けます。今私はUNIXソケットとTCPソケット2375を聞くためにドッカーを持っていたいと思っています。これは社内の開発マシンセキュリティであるため、問題はありません。システムドでcentos以下のunixとTCPソケットを聞くドッカーを作る方法

インターネットをスキャンしていくつかの記事を見つけましたが、まだ質問があります。

私は、パラメータなしでドッキングを開始するsystemdファイル(docker.service)があります。 ExecStart =/usr/bin/dockerd

ここにdemon.jsonというファイルがあります。ここに私が聞くものを列挙することができます。 私の質問はここに入力するものです。かもしれない。

{ 
    "hosts": [ "unix:///var/run/docker.sock", 
       "tcp://0.0.0.0:2375" 
      ] 
} 

これは、ソケットの起動のためのものですか?

{ 
     "hosts": [ "unix:///var/run/docker.sock", 
        "fd://" 
       ] 
    } 

それから私が見つけた2つ目は、この

[Unit] Description=Docker Socket for the API 
PartOf=docker.service 

[Socket] 
ListenStream=tcp://0.0.0.0:2375 
SocketMode=0660 
SocketUser=root 
SocketGroup=docker 

[Install] 
WantedBy=sockets.target 

のようなファイルdocker.sockstを提供することで、systemdにソケットを準備することです。しかし、これは唯一のTCPソケットを定義します。 1つの記事によると、ドッカーはTCPポートに応答しますが、もはやUNIXソケットには反応しません。

誰かが詳細を指摘できるといいですね。

答えて

1

したがって、docker.socketファイルなどには触れないでください。 SystemdにはDropInの概念があり、dropinファイルを使用してサービスの一部を無効にすることができます。

だから、その後、あなたの最初のExecStart=空白

cat > /etc/systemd/system/docker.service.d/90-docker.conf <<EOF 
[Service] 
ExecStart= 
ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375 

設定ファイルを作成し、元のコマンドと第二 ExecStartは、我々がしたい新しいコマンドを指定するサービス最初

mkdir -p /etc/systemd/system/docker.service.d/ 

ためDROPINフォルダを作成しますオーバーライド

ドッカーサービスを再起動する必要があります。

systemctl daemon-reload 
systemctl restart docker 

あなたのサービスは2375でリッスンしています。現在、ホストオプションは/etc/docker/daemon.jsonを使って制御することはできません。詳細

https://docs.docker.com/engine/reference/commandline/dockerd/#docker-runtime-execution-options

+0

空白ExecStart =行についての良いヒントについては、以下のリンクを参照してください。以前はそのような動作に気がつきませんでしたが、今は 'man systemd.service'に記載されています。 –

関連する問題