Pengaturan khusus ini berada di bawah pengaruh ruang nama jaringan tempat buruh pelabuhan berjalan.
Sebagai aturan umum /proc apakah mengubah pengaturan yang relevan di seluruh sistem, secara teknis bagaimanapun Anda mengubah pengaturan di /proc/net yang mengembalikan hasil berdasarkan ruang nama per jaringan.
Perhatikan bahwa /proc/net sebenarnya adalah symlink ke /proc/self/net karena ini benar-benar mencerminkan pengaturan ruang nama tempat Anda bekerja.
Docker 1.12+ memiliki dukungan asli untuk mengutak-atik nilai sysctl di dalam wadah. Berikut adalah kutipan dari dokumentasi:
Konfigurasi parameter kernel namespaced (sysctls) saat runtime
--sysctl menyetel parameter kernel namespaced (sysctls) dalam wadah. Misalnya, untuk mengaktifkan penerusan IP di ruang nama jaringan penampung, jalankan perintah ini:
docker run --sysctl net.ipv4.ip_forward=1 someimage
Menggunakan contoh Anda, cara yang benar untuk menaikkan net.core.somaxconn akan menjadi:
docker run ... --sysctl net.core.somaxconn=65535 ...
Kontainer yang diistimewakan masih menggunakan ruang nama prosesnya sendiri untuk /proc . Yang dapat Anda lakukan adalah memasang /proc yang sebenarnya di dalam wadah:
docker run --rm --privileged -v /proc:/host-proc ubuntu:latest \
'echo 65535 > /host-proc/sys/net/core/somaxconn'