在容器實際啓動後,是否可以添加一個功能(例如:NET_ADMIN)?我們如何向運行的碼頭集裝箱添加功能?
我幾天前創建了一個容器,它提供的服務正在被遠程運行在其他服務器上的其他幾個進程使用。我需要爲它添加一個回送接口,但不幸的是,我忘記了用啓動容器,因此現在無法添加接口。
我正在尋找一個選項,如果有可能給這個容器以某種方式給這個容器。
在容器實際啓動後,是否可以添加一個功能(例如:NET_ADMIN)?我們如何向運行的碼頭集裝箱添加功能?
我幾天前創建了一個容器,它提供的服務正在被遠程運行在其他服務器上的其他幾個進程使用。我需要爲它添加一個回送接口,但不幸的是,我忘記了用啓動容器,因此現在無法添加接口。
我正在尋找一個選項,如果有可能給這個容器以某種方式給這個容器。
您可以使用docker exec -it {container_id} /bin/bash
在正在運行的容器中運行命令。 它會爲你創建一個bash,你可以運行命令。但通常對圖像狀態進行修改並不是一個好習慣,因爲它會消除圖像的可移植性。
不,您不能修改正在運行的容器的功能。這些只能在您首次創建或運行容器時才能定義(這只是一個create + start)。您需要創建一個具有所需功能的新容器。
我應該指出,您可以將其他網絡接口分配給正在運行的容器與docker network connect
,但我不知道任何迴環驅動程序可用於解決您的問題使用此技術。
VanagaS
1.Stop容器:
docker stop yourcontainer;
2.註冊容器ID:
docker inspect yourcontainer;
3.修改hostconfig.json(默認搬運工路徑:在/ var/lib中/碼頭,你可以改變你的)
vim /var/lib/docker/containers/containerid/hostconfig.json
4.搜索「CapAdd」,並將null修改爲[「NET_ADMIN」];
....,"VolumesFrom":null,"CapAdd":["NET_ADMIN"],"CapDrop":null,....
5.主機中的Rartart docker;
service docker restart;
6.啓動您的包容器;
docker start yourcontainer;
它爲我工作,享受它。
默認情況下,容器中包含回送接口,即使您在沒有網絡的情況下啓動一個接口。你沒有使用什麼選項來啓動你的? – BMitch
需要添加額外的回送接口來分配額外的IP地址 – VanagaS
向正在運行的容器添加功能會很好。例如,如果您需要開始使用iptables,也是必要的。 – jjmontes