簡體   English   中英

如何修改 docker 容器的 IP?

[英]How to modify the IP for a docker container?

我是 docker 的新手。 And currently faced one problem -- I've downloaded a sles11sp4 image from dockerhub -- https://hub.docker.com/r/darksheer/sles11sp4 And when I run it -- docker run -i -t darksheer/sles11sp4 / bin/bash -- 我發現上面已經設置了 IP 和 MAC --

docker:~ # docker run -i -t darksheer/sles11sp4 /bin/bash
145636fbb570:/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:696 (696.0 b)  TX bytes:0 (0.0 b)

由於此 IP 與主機( 192.168.95.66 )不是同一個 LAN,我想將其修改為另一個 IP(192.168.95.75)以使此容器在網絡上可見。 所以我嘗試使用“--ip xxxx”參數運行它,但失敗了--

docker:~ # docker run -i -t --ip 192.168.95.67 darksheer/sles11sp4 /bin/bash
29fda722cf70:/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:696 (696.0 b)  TX bytes:0 (0.0 b)

然后發現這個鏡像上沒有網卡腳本,所以不能在容器里面修改——

29fda722cf70:/ # cd /etc/sysconfig/network/
29fda722cf70:/etc/sysconfig/network # ls
if-down.d  if-up.d  providers  scripts
29fda722cf70:/etc/sysconfig/network # cd if-up.d/
29fda722cf70:/etc/sysconfig/network/if-up.d # ls
29fda722cf70:/etc/sysconfig/network/if-up.d # cd ..
29fda722cf70:/etc/sysconfig/network # cd scripts/
29fda722cf70:/etc/sysconfig/network/scripts # ls
29fda722cf70:/etc/sysconfig/network/scripts # cd ..
29fda722cf70:/etc/sysconfig/network # cd providers/
29fda722cf70:/etc/sysconfig/network/providers # ls
29fda722cf70://etc/sysconfig/network/providers # cd ../scripts/
29fda722cf70:/etc/sysconfig/network/scripts # ls
29fda722cf70:/etc/sysconfig/network/scripts #
29fda722cf70:/etc # cd /etc/udev/rules.d/
29fda722cf70:/etc/udev/rules.d # ls

 Then I confused -- how to set a new IP to a container like this? Please kind help. Thanks

問候艾森

我找到了答案——

  1. docker 網絡創建 --subnet=192.168.97.0/24 net1

  2. docker 運行 --net net1 --ip 192.168.97.67 -i -t darksheer/sles11sp4 /bin/bash

    6ced18aaeeb6:/ # ifconfig eth0 Link encap:Ethernet HWaddr 02:42:C0:A8:61:43 inet addr:192.168.97.67 Bcast:192.168.97.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM