我做了一个类似于上面文章的黑客攻击,让本地IP映射到容器中的别名(DNS)。主要问题是动态地使用一个简单的脚本,该脚本在
Linux和OSX主机IP地址
. 我编写的这个脚本在两种环境下都能工作(即使在linux发行版中
"$LANG" != "en_*"
配置):
ifconfig | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{ print $2 }' | cut -f2 -d: | head -n1
因此,使用docker compose,完整配置将是:
启动脚本(docker run.sh)
:
export DOCKERHOST=$(ifconfig | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{ print $2 }' | cut -f2 -d: | head -n1)
docker-compose -f docker-compose.yml up
docker-compose.yml文件
:
myapp:
build: .
ports:
- "80:80"
extra_hosts:
- "dockerhost:$DOCKERHOST"
然后改变
http://localhost
到
http://dockerhost
在你的密码里。
有关如何自定义
DOCKERHOST
剧本,看看
this post
并解释它是如何工作的。