テストのために17.09.0-ce dockerサービスとcentos7.2.1511を使用し、ネットワーク関連のシステム構成を変更しようとしましたが失敗しました。
ファイルを使用してすべての構成をオーバーライドします。
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 200000
net.core.netdev_max_backlog = 200000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
sysctl -p config
:
sysctl: cannot stat /proc/sys/net/ipv4/tcp_syncookies: No such file or directory
sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle: No such file or directory
sysctl: cannot stat /proc/sys/net/ipv4/tcp_max_syn_backlog: No such file or directory
sysctl: cannot stat /proc/sys/net/core/netdev_max_backlog: No such file or directory
sysctl: cannot stat /proc/sys/net/core/rmem_max: No such file or directory
sysctl: cannot stat /proc/sys/net/core/wmem_max: No such file or directory
実際、コンテナにこれらのファイルは表示されません。 Dockerは上記の設定変更をサポートしていませんか、それとも私が間違っていますか?
答え1
使用docker run --sysctl your.config.parameter
。私が覚えている限り、いくつかの--sysctl
オプションが何度も使用されました。一部のsysctlパラメータはグローバルであるため、dockerを使用して設定することはできません。
同様の方法や他の方法を使用して正しい名前空間に入らない限り、伝統的なスタイル設定/sys|/proc
はコンテナ内では機能しません。ip netns exec ...
答え2
Dockerは仮想マシンではないため、仮想マシンが実行するすべてのアーキテクチャを提供するわけではありません。 Dockerコンテナのデフォルトインフラストラクチャは、コンテナ自体ではなくホストシステムに設定されます。
よりドッカー概要文書そしてドッカーネットワークドキュメント詳細については。
より徹底したカスタマイズオプションについては、以下で説明します。https://docs.docker.com/engine/userguide/networking/default_network/container-communication