如何创建包含通过 DHCP 设置的适配器的 IP 地址的环境变量?

如何创建包含通过 DHCP 设置的适配器的 IP 地址的环境变量?

我正在使用 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)

相关内容