docker 其他电脑访问权限_docker – 从远程计算机连接到容器
我今天回答了一個非常相似的問題,你能不能在這里看一下我的答案并遵循它,它對我來說非常適合.
這是答案:
創(chuàng)建持久性網(wǎng)橋
Bridge是一種設(shè)備(在我們的例子中是虛擬設(shè)備),其行為類似于網(wǎng)絡(luò)swiches(主要在網(wǎng)絡(luò)層2上運行),即,它可以將兩個或多個網(wǎng)絡(luò)接口連接到同一局域網(wǎng)(LAN)上如果他們有相同的子網(wǎng).
您將創(chuàng)建新的持久性橋接器br0(它將在系統(tǒng)引導(dǎo)時自動啟動),將您的物理網(wǎng)絡(luò)接口添加到其中(在我的情況下,它是eth0).請注意,在將接口添加到網(wǎng)橋后,接口不再需要IP地址,因為網(wǎng)橋?qū)@得IP地址,可以代替您的接口使用,也就是說,您可以使用網(wǎng)橋進行通信,就好像它是您的物理接口,它將輸入/輸出數(shù)據(jù)包轉(zhuǎn)發(fā)到正確的目的地.您不需要將任何硬件(MAC地址)分配給網(wǎng)橋,它將自動獲取第一個添加的接口的MAC.
Warning: It is highly recommended not to do these steps remotely except you have a physical access to your server! You may lose your connection to your server if you were not careful.
安裝橋管理實用程序:
sudo apt install bridge-utils
The system will not be able to create the bridge without bridge-utils package.
要創(chuàng)建持久性橋,請編輯interfaces文件:
sudo vim /etc/network/interfaces
將以下配置添加到文件末尾(根據(jù)您的需要進行調(diào)整):
auto br0
iface br0 inet static
bridge_ports eth0
address 192.168.1.10
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
現(xiàn)在刪除Docker的默認橋接器docker0,因為我們不需要它:
sudo systemctl stop docker
sudo ip link set dev docker0 down
sudo brctl delbr docker0
編輯Docker的服務(wù)啟動腳本以使用您的網(wǎng)橋(br0)而不是Docker的默認網(wǎng)橋(docker0),并傳遞一些重要的網(wǎng)橋參數(shù):
Ubuntu的:
sudo vim /etc/systemd/multi-user.target.wants/docker.service
將文件調(diào)整為如下所示:
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --bridge=br0 --fixed-cidr=192.168.1.32/27 --default-gateway=192.168.1.1
現(xiàn)在告訴系統(tǒng)有關(guān)該文件的更改:
sudo systemctl daemon-reload
重啟系統(tǒng):
sudo reboot
現(xiàn)在檢查你的橋,它應(yīng)該在那里!
ip addr
現(xiàn)在創(chuàng)建像bellow一樣的容器,這將導(dǎo)致為您的容器提供修復(fù)IP:
docker run --name myContainer \n -it --restart always --memory 100M \n --network bridge --cap-add NET_ADMIN \n --hostname client1.noureldin.local \n --add-host "client1.noureldin.local client1":192.168.1.123 \n mnoureldin/general-purpose:latest /bin/bash -c " \n ip addr flush dev eth0; \n ip addr add 192.168.1.123/24 brd + dev eth0; \n ip route add default via 192.168.1.1 dev eth0; \n /bin/bash"
與您的網(wǎng)絡(luò)要求相關(guān)的重要部分是:
--network bridge --cap-add NET_ADMIN \n ip addr flush dev eth0; \n ip addr add 192.168.1.123/24 brd + dev eth0; \n ip route add default via 192.168.1.1 dev eth0; \n
當然,請確保在容器中安裝了iproute2 net-tools iputils-ping軟件包,以便能夠執(zhí)行公共網(wǎng)絡(luò)命令(通過ip命令完成固定IP).
第一次運行容器時,您可能不會注意到IP地址的任何更改,因為您的conainer可能沒有iproute2包(即沒有ip命令),只是安裝提到的包然后重啟容器和一切應(yīng)該完全按照你的意愿!
希望有所幫助.
總結(jié)
以上是生活随笔為你收集整理的docker 其他电脑访问权限_docker – 从远程计算机连接到容器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 输入文字加下划线_微信昵称这样设置,文字
- 下一篇: Pytorch中参数和模型的保存与读取