內網有一臺服務器安裝了MongoDB,因開發須要,要外網也能訪問。查詢資料後發現Haproxy能夠解決。方法是,用外網的服務器代理內網TCP。redis
1.宿主機下載docker鏡像docker
docker pull haproxy
2.宿主機添加Haproxy配置文件(用於容器掛載)數據庫
mkdir /usr/local/etc/haproxy vim /usr/local/etc/haproxy/haproxy.cfg
#配置的haproxy.cfg文件 global log 127.0.0.1 local2 chroot /usr/local/etc/haproxy pidfile /var/run/haproxy.pid maxconn 4000 #user haproxy #group haproxy daemon # turn on stats unix socket stats socket /usr/local/etc/haproxy/stats defaults log global log 127.0.0.1 local3 mode http option tcplog option dontlognull retries 10 option redispatch maxconn 2000 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s listen mongo bind xxx.xxx.xxx.xxx:27017 mode tcp balance roundrobin server mongo1 192.168.100.2:27017
3.建立且運行容器vim
docker run -d --name haproxy --net=host -v /usr/local/etc/haproxy:/usr/local/etc/haproxy haproxy
4.在宿主機測試服務器
mongo 127.0.0.1:27017
donesocket