Tôi đang xây dựng một thùng chứa để điều chỉnh cài đặt kernel cho bộ cân bằng tải. Tôi muốn triển khai những thay đổi đó đến máy chủ lưu trữ trong một hình ảnh bằng cách sử dụng một thùng chứa đặc quyền duy nhất. Ví dụ:
docker run --rm --privileged ubuntu:latest sysctl -w net.core.somaxconn=65535
Trong thử nghiệm các thay đổi có hiệu lực nhưng chỉ đối với container đó. Tôi có ấn tượng rằng với một bộ chứa đặc quyền hoàn toàn thay đổi thành / Proc sẽ thực sự thay đổi hệ điều hành cơ bản.
$docker run --rm --privileged ubuntu:latest \
sysctl -w net.core.somaxconn=65535
net.core.somaxconn = 65535
$ docker run --rm --privileged ubuntu:latest \
/bin/bash -c "sysctl -a | grep somaxconn"
net.core.somaxconn = 128
Đây có phải là cách các container đặc quyền được cho là để làm việc?
Tôi chỉ đang làm điều gì đó ngớ ngẩn?
Cách tốt nhất để thực hiện các thay đổi lâu dài là gì?
Thông tin phiên bản:
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): linux/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8
Lệnh ví dụ với mount / Proc:
$ docker run -v /proc:/proc ubuntu:latest \
/bin/bash -c "sysctl -a | grep local_port"
net.ipv4.ip_local_port_range = 32768 61000
$ docker run -v /proc:/proc --privileged ubuntu:latest \
/bin/bash -c "sysctl -p /updates/sysctl.conf"
net.ipv4.ip_local_port_range = 2000 65000
$ docker run -v /proc:/proc ubuntu:latest \
/bin/bash -c "sysctl -a | grep local_port"
net.ipv4.ip_local_port_range = 32768 61000
$ docker run -v /proc:/proc --privileged ubuntu:latest \
/bin/bash -c "sysctl -a | grep local_port"
net.ipv4.ip_local_port_range = 32768 61000