【发布时间】:2021-02-26 16:00:37
【问题描述】:
我有一个运行 vpn 的 docker 容器
在 docker 内我运行 curl ipinfo.io/$(curl ifconfig.me) 我得到了 vpn ip 和位置
docker exec -it vpnmy /bin/bash
[root@158983fe36a0 /]# curl ipinfo.io/$(curl ifconfig.me)
"ip": "xxx.xxx.x.xx",
"city": "New York City",
"region": "New York",
"country": "US",
上面我选择的 vpn 位置及其按预期显示。表示 vpn 正在运行
当我尝试时在哪里
$ docker exec -it vpnmy curl ipinfo.io/$(curl ifconfig.me)
"ip": "xxx.xxx.x.xx",
"city": "current city",
"region": "current region",
"country": "current country",
它显示了我的互联网服务提供商 ip 全局详细信息
但我想继续检查,而无需先进入 bash 提示符并运行 curl
我该怎么做
【问题讨论】:
-
您可以使用 bash 命令标志 docker exec -it /bin/bash -c “curl ipinfo.io/$(curl ifconfig.me)” 发出命令,记住这将触发命令我不认为输出是可见的。但是,如果您想查看输出,只需生成一个像这样的文件 docker exec -it /bash/bash -c “curl ipinfo.io/$(curl ifconfig.me) >> tee -a result.txt 它只是附加命令会生成一个名为 result 的文件,有很多方法可以做到这一点,这只是一个例子
-
docker exec -it vpmy /bin/bash -c "curl ipinfo.io/$(curl ifconfig.me)"它输出结果,但不是 vpn ip 而是我的 isp ip -
据我了解。当您创建一个容器时,它的网络将与您的主机系统桥接。我相信您需要创建一个 docker-machine ip 并在您的 docker-compose 文件中使用自定义 dns 设置设置一个 docker 网络。
标签: docker containers vpn