以特权模式重启docker容器

Asa*_*ter 4 docker proc

我有一个无法应对负载的 docker 容器。

我需要增加 in 的值,/proc/sys/net/core/somaxconn但我无法这样做,因为容器未在特权模式下运行。

自从创建 docker 文件以来,对 nignx 和 php 配置进行了一些调整。

是否可以在不丢失我已经进行的配置更改的情况下以特权模式重新启动容器?

uni*_*ynx 5

容器配置位于 /var/lib/docker/containers/<id>/hostconfig.json - 您可以对其进行编辑并重新启动容器,但在编辑时不应运行 docker。

# docker run -ti --name test fedora:25 /bin/bash
# echo 512 > /proc/sys/net/core/somaxconn   # in docker
bash: /proc/sys/net/core/somaxconn: Read-only file system
# exit # exit docker, back to host
# systemctl stop docker # or stop it with whatever servicemanager you're using

# cd /var/lib/docker/containers/b48fcbce0ab29749160e5677e3e9fe07cc704b47e84f7978fa74584f6d9d3c40/
# cp hostconfig.json{,.bak}
# cat hostconfig.json.bak | jq '.Privileged=true' | jq '.SecurityOpt=["label=disable"]' > hostconfig.json

# systemctl start docker
# docker start test
test
# docker exec -ti test /bin/bash
# echo 512 > /proc/sys/net/core/somaxconn   # in docker, now works
Run Code Online (Sandbox Code Playgroud)

这当然会在您进行更改时关闭所有容器。