赞
踩
操作环境: centos7服务器一台,只开放一个80端口;采用docker方式部署。
一个MongoDb数据库:用于接口推送文档数据存储。安装步骤如下:
docker run --name mongodb --privileged=true -v /etc/localtime:/etc/localtime -v /docker/mongoDB/data:/data/db -p 27017:27017 -d mongo --auth
docker exec -it mongodb mongo admin
创建管理员用户
# 进入 admin 的数据库(测试166: admin/123456)
use admin # 创建管理员用户 db.createUser( { user: "******", pwd: "******", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
创建特定数据库用户
# 创建有可读写权限的用户. 对于一个特定的数据库, 比如'gfMeteor'
# 必须先进入 gfMeteor 的数据库
use gfMeteor
db.createUser({
user: "******",
pwd: "******",
roles: [{role: "readWrite",db: "gfMeteor"}]
})
修改 mongo 配置文件
/etc/mongod.conf.orig
将其中bindIP:127.0.0.1 改为0.0.0.0或将这一行注释掉
127.0.0.1只允许本地连接,不接受其它远程主机连接到mongodb
一个tomcat服务器:用于部署接口推送数据查询应用。
tomcat安装步骤如下:
1、拉取tomcat镜像:docker pull docker.io/tomcat
2、启动容器:
docker run -d --name meteor-open --privileged=true -v /etc/localtime:/etc/localtime -v /home/mytimezone:/etc/timezone -v /home/applogs:/data/applogs/ -v /home/tomcat/meteor-open/webapps:/usr/local/tomcat/webapps -p 8081:8080 tomcat
其中,mytimezone是自己创建的文件,里面的内容为 Asia/Shanghai, java容器时区修正;
一个tomcat服务器:用于部署对MongoDB操作封装的接口应用。
tomcat安装步骤如下:
1、拉取tomcat镜像:docker pull docker.io/tomcat
2、启动容器:
docker run -d --name push-rest --privileged=true -v /etc/localtime:/etc/localtime -v /home/mytimezone:/etc/timezone -v /home/applogs:/data/applogs/ -v /home/tomcat/push-rest/webapps:/usr/local/tomcat/webapps -p 8000:8080 tomcat
其中,mytimezone是自己创建的文件,里面的内容为 Asia/Shanghai, java容器时区修正;
注意事项:
开放端口:(容器间采用宿主机内网IP通讯,被访问容器必须设置;否则容器间无法通讯)
Push-rest、meteor-open容器需要访问mongoDB容器相连;网关需要访问 meteor-open
目的:避免docker容器重启内部ip发生变化
查看防火墙状态
firewall-cmd --state
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
重启容器时,必须先开启防火墙,因上面配置了规则,关闭防火墙会无法启动容器,除非先移除规则:
firewall-cmd --zone=public --remove-port=27017/tcp --permanent
否则,异常信息类似:
Error response from daemon: driver failed programming external connectivity on endpoint push-rest (c23d18c1877acf4b9e1b6d44aa3b3d598aa45b8b789866fea452df1a6ad5f5d0): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8000 -j DNAT --to-destination 172.17.0.8:8080 ! -i docker0: iptables: No chain/target/match by that name.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。