现在的环境是这样的,加入说我在一台宿主机上有两个服务。
一个容器作为tomcat,里边是java-web程序。
另一个容器作为mysql,里边跑数据存储服务。然后启动两个容器
首先是mysql : docker run -d --name -v fdsafas:/fdsafa mysqlserver image_id
然后是tomcat: docker run -d --link mysqlserver:db -p 80:8080 -v fdsafsa:/fdsafjsad image_tomcat_id现在我想在java程序中操作数据库,之前的方式是指定 数据库Ip和端口之类的,然后连接。现在我的想法是,如果在一个生产环境下,不知道容器mysql的ip地址,如何能够连接呢?难道需要让java程序去读系统的环境变量么?因为在tomcat容器中的环境变量确实能够看到mysql暴露出来的端口号,比如:[root@dockertest containers]# docker run -it --link mysqlserver:db -p 80:80 -v /some/content:/usr/share/nginx/html 5135500ec6a1 env
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=8b91ed33f8fd
TERM=xterm
DB_PORT=tcp://172.17.0.2:3306
DB_PORT_3306_TCP=tcp://172.17.0.2:3306
DB_PORT_3306_TCP_ADDR=172.17.0.2
DB_PORT_3306_TCP_PORT=3306
DB_PORT_3306_TCP_PROTO=tcp
DB_NAME=/lonely_pasteur/db
一个容器作为tomcat,里边是java-web程序。
另一个容器作为mysql,里边跑数据存储服务。然后启动两个容器
首先是mysql : docker run -d --name -v fdsafas:/fdsafa mysqlserver image_id
然后是tomcat: docker run -d --link mysqlserver:db -p 80:8080 -v fdsafsa:/fdsafjsad image_tomcat_id现在我想在java程序中操作数据库,之前的方式是指定 数据库Ip和端口之类的,然后连接。现在我的想法是,如果在一个生产环境下,不知道容器mysql的ip地址,如何能够连接呢?难道需要让java程序去读系统的环境变量么?因为在tomcat容器中的环境变量确实能够看到mysql暴露出来的端口号,比如:[root@dockertest containers]# docker run -it --link mysqlserver:db -p 80:80 -v /some/content:/usr/share/nginx/html 5135500ec6a1 env
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=8b91ed33f8fd
TERM=xterm
DB_PORT=tcp://172.17.0.2:3306
DB_PORT_3306_TCP=tcp://172.17.0.2:3306
DB_PORT_3306_TCP_ADDR=172.17.0.2
DB_PORT_3306_TCP_PORT=3306
DB_PORT_3306_TCP_PROTO=tcp
DB_NAME=/lonely_pasteur/db
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货