给容器指定固定 IP ?还是每次容器启动跑进去看看 IP 再出来配?有没有容器启动后自己在宿主机的 hosts 里添加一条自己的映射的方案?
1
dcalsky 2017-08-22 15:00:23 +08:00 via Android
container can expose the port to host machine
你只要转发给暴露出来的端口就好啦 |
3
dcalsky 2017-08-22 15:42:18 +08:00 via Android
@thisisgpy 你是怕暴露端口有安全问题吗?没事的,你暴露出的是内网端口,只要不暴露到外网去都不会有问题,如果实在害怕,就加安全组。
|
4
terrawu 2017-08-22 15:46:54 +08:00
docker-gen
|
5
jarlyyn 2017-08-22 15:48:14 +08:00
难道不是自己组建一个 network,然后指定 ip 么…………
|
6
jarlyyn 2017-08-22 15:49:44 +08:00
大概这样
docker run --network=jarln.com --ip=10.1.1.2 --name blog -v /var/www/data:/goapp --entrypoint=/goapp/bin/blog --restart always debian |
7
ryd994 2017-08-22 16:04:11 +08:00 via Android 1
|
8
ryd994 2017-08-22 16:10:12 +08:00 via Android
还有一种更安全一点的做法,适合配合 compose 或其他编排系统:
再开一个 socat 容器,link 后端容器,socat 转发后端端口到 socs 文件 socks 文件所在文件夹 mount 出来用 通过对 socks 文件设置权限,可以实现更精细的权限控制 不过一般来说本地程序都可信,127.0.0.1 也算够用了 |
9
jarlyyn 2017-08-22 16:20:19 +08:00
@ryd994
我试下来这个方案最好 -p 127.0.0.1 的访问问题有两个,第一次每次都必须是不同的端口,端口和配置文件会很混乱 第二是效率问题。 做压力测试的时候会发现 docker-proxy 占用很高。 用 socks 的问题就更坑了,有个不同容器启动顺序的问题。 所以后来都是自己组个 network,异常好用。 |
10
ryd994 2017-08-22 16:32:50 +08:00 via Android
@jarlyyn 我 userland-proxy=false,docker-proxy 根本不走数据,只负责占用端口
有些内核 iptables 不支持 nat 到 127.0.0.1 我用的是 CentOS 7 不要单纯-p 127.0.0.1,-p 到随机端口还有什么意思嘛。明确指定本地端口号,人工维护本地端口号分配。一共就那么几种服务,按自己习惯分配一下就行了 启动顺序这个,所以我说要配合编排系统。compose 里 link 会隐含 depend 组 network 你还不是要人工维护地址分配 |
12
hcymk2 2017-08-22 17:35:59 +08:00
link 已经不推荐使用了 还是自己组网好。
|