我有一个使用MAC地址进行许可的应用程序。我想在Docker容器中运行此应用程序以用于CI/CD目的。我创建了一个Docker容器并使用ENTRYPOINT
来运行shell脚本。我现在遇到的问题是,当我尝试ping任何服务器时,我得到网络错误。我想知道这是否是我可以修复的问题,或者我做得不正确。我"我很想找到一个解决方案,这样我就可以在将我为这个系统编写的脚本投入生产之前对其进行测试。
- 停靠文件**
FROM centos:latest
COPY startup.sh /startup.sh
ENTRYPOINT ["/bin/sh", "/startup.sh"]
- 启动. sh**
ip link set dev eth0 down;
ip link set dev eth0 address 02:42:ac:11:00:11;
ip link set dev eth0 up;
- 错误**
sh-4.4# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
29: eth0@if30: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
link/ether 02:42:ac:11:00:11 brd ff:ff:ff:ff:ff:ff link-netnsid 0
sh-4.4# ping google.com
ping: google.com: Name or service not known
sh-4.4# ping 4.4.4.4
connect: Network is unreachable
1条答案
按热度按时间camsedfj1#
如果你需要覆盖像这样的底层网络细节,你通常应该在Docker级别上完成。例如,当你启动container时,你可以指定一个
docker run --mac-address
选项。你不需要在container的启动序列中运行ip
、ifconfig
或类似的网络管理命令;这完全由Docker处理。