GNU/Linux >> Linux の 問題 >  >> Linux

特権 Docker コンテナを使用したカーネル チューニング

この特定の設定は、docker が実行されるネットワーク名前空間の影響を受けます。

原則として /proc 技術的に言えば、システム全体に関連する設定を変更しますが、 /proc/net で設定を変更しています ネットワーク名前空間ごとに結果を返します。

/proc/net に注意してください 実際には /proc/self/net へのシンボリックリンクです 作業を行っている名前空間の設定が実際に反映されるためです。


Docker 1.12+ には、コンテナー内の sysctl 値を微調整するためのネイティブ サポートがあります。以下はドキュメントからの抜粋です:

<ブロック引用>

実行時に名前空間付きのカーネル パラメータ (sysctls) を構成する

--sysctl は、名前空間付きのカーネル パラメーター (sysctls) をコンテナーに設定します。たとえば、コンテナ ネットワークの名前空間で IP 転送を有効にするには、次のコマンドを実行します。

docker run --sysctl net.ipv4.ip_forward=1 someimage

あなたの例を使用して、 net.core.somaxconn を上げる正しい方法

docker run ... --sysctl net.core.somaxconn=65535 ...

特権コンテナーは、/proc に対して独自のプロセス名前空間を引き続き使用しています .あなたができることは、実際の /proc をマウントすることです コンテナ内:

docker run --rm --privileged -v /proc:/host-proc ubuntu:latest \
  'echo 65535 > /host-proc/sys/net/core/somaxconn'

Linux
  1. trace-cmdを使用したカーネルトレース

  2. UbuntuにDockerでWordPressをインストールする方法

  3. ホストから Docker コンテナのネットワーク名前空間にアクセスする方法

  1. DockerコンテナにApacheを使用してModSecurityをインストールする

  2. LinodeにDockerを使用してnginxコンテナをデプロイする方法

  3. Dockerの概要

  1. Dockerコンテナを終了する方法

  2. ダウンタイムなしでDockerコンテナを更新する方法

  3. ホスト ポートを Docker コンテナに転送する