我正在使用 docker,我的脚本引用了我在用户中手动设置的环境变量富帐户 /etc/environment 类似:
SERVER_IP=172.16.16.29
我在 docker-compose 文件中使用(我在 as 下运行)富)
environment:
- ServerIP=${SERVER_IP}
我希望能够有一个变量DHCP 地址池适配器enp0s3已设置 IP 地址,以便我可以使用DHCP 地址池 代替服务器 IP在上面的docker-compose中。
我并不担心 IP 地址经常变化,因为我在路由器中使用 MAC 地址过滤来分配相同的 IP。但我不想像现在这样在文件中手动设置 IP 地址。
那么我怎样才能把 IP 地址的值enp0s3放入一个名为DHCP 地址池,以及如何在命令行或文件中引用它?
或者如果您知道其他选择,我愿意接受建议。
答案1
将以下内容添加到/etc/bash.bashrc
有问题的适配器是:enp0s3
,因此请进行相应更改
IP="$(ip addr show enp0s3 | awk '$1 == "inet" { print $2 }' | cut -d/ -f1)"
export SERVER_IP=${IP}
答案2
我正在使用以下方法:
假设您的以太网名称是ens160
:
IP=http://"$(ifconfig ens160 | awk '/inet /{print $2}' | cut -f2 -d':')"
或者:
IP=http://"$(hostname -I | cut -f1 -d' ')"
测试:
echo $IP
http://192.168.100.146
答案3
以下是一些可以起作用的命令:
IP=$(hostname -I | awk '{print $1}')
IP=$(ip addr show | grep 'inet' | awk '{print $2}' | cut -d'/' -f1 | head -n 3 | tail -n 1)