在容器启动后添加功能(例如:NET_ADMIN)是否有可能?
几天前我启动了一个容器,其中的一个服务被运行在其他服务器上的多个进程所使用。我需要为其添加一个回环接口,但不幸的是,我忘记使用 --cap-add=NET_ADMIN
启动容器,因此现在无法添加该接口。
我正在寻找一种方法,是否可以将此功能以某种方式授予该容器。
在容器启动后添加功能(例如:NET_ADMIN)是否有可能?
几天前我启动了一个容器,其中的一个服务被运行在其他服务器上的多个进程所使用。我需要为其添加一个回环接口,但不幸的是,我忘记使用 --cap-add=NET_ADMIN
启动容器,因此现在无法添加该接口。
我正在寻找一种方法,是否可以将此功能以某种方式授予该容器。
停止容器:
docker stop your-container
获取容器的ID: docker inspect your-container
修改默认位于/var/lib/docker
的hostconfig.json
文件: vim /var/lib/docker/containers/ID/hostconfig.json
搜索 "CapAdd
" 并将其值更改为您需要的值(默认为 null
):...,"CapAdd":["NET_ADMIN"],"CapDrop":null,...
重新启动主机上的Docker守护进程以重新加载容器配置:
service docker restart
重新启动您的容器:
docker start your-container
["SYS_TRACE"]
,但没有成功。 - Jinudocker network connect
为正在运行的容器分配其他网络接口,但我不知道您是否可以使用任何回环驱动程序来使用此技术解决您的问题。您可以使用docker exec -it {container_id} /bin/bash
在正在运行的容器内运行命令。它将为您创建一个bash,您可以在其中运行命令。但通常不建议对镜像状态进行修改,因为这会降低镜像的可移植性。