绑定ip对应的php后面加上,ssh1
,因为mongo连接的ssh,对应的容器名字是ssh1
https://github.com/fecshop/yii2_fecshop_docker#gui访问数据库
在fecshop docker,ssh容器的配置如下:
ssh1:
build:
context: ./services/ssh/docker/
networks:
- code-network
ports:
- "2222:22"
因此,mongo
将绑定的ip中加上:ssh1
就可以了
mongodb:
image: mongo:3.7
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/data/logs
volumes:
- ./db/mongodb/data:/data/db
- ./db/mongodb/example_db:/data/example_db
- ./db/mongodb/logs:/data/logs
command: ["mongod", "--bind_ip", "php,ssh1"]
ports:
- 27017:27017
networks:
- code-network
1.是内网ip,按照上面写的,就是 php
,docker host会映射到相应的ip的,应该没有问题的,你试试,应该可以的
2.添加mongodb的用户名密码:
然后,fecshop配置一下mongodb用户名和密码
帮助文档:http://www.fecshop.com/doc/fecshop-guide/instructions/cn-1.0/guide-fecshop_home.html
强制刷新下浏览器,刚更新的文档,可能有浏览器缓存
因为国人各种习惯Q聊,fecshop技术交流Q群,是为了前期引导程序员到论坛发帖
2018年6月24号,Q群的也大致有1750人了,里面各种 混杂,而且很多所谓的程序员不遵从公告里面到论坛发帖, 不给于回复又会抱怨,需要分神管理Q群,很费神。
而且Q群里面鱼目混杂,各种人都有,而fecshop是技术人讨论技术的地方,论坛才是讨论技术的地方
帖子讨论技术问题是最好的。
将docker-compose.yml文件中的配置:
mongodb:
image: mongo:3.7
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/data/logs
volumes:
- ./db/mongodb/data:/data/db
- ./db/mongodb/example_db:/data/example_db
- ./db/mongodb/logs:/data/logs
- ./db/mongodb/etc/mongod.conf:/etc/mongod.conf
ports:
- 27017:27017
networks:
- code-network
改成:
mongodb:
image: mongo:latest
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/data/logs
volumes:
- ./db/mongodb/data:/data/db
- ./db/mongodb/example_db:/data/example_db
- ./db/mongodb/logs:/data/logs
command: ["mongod", "--bind_ip", "php"]
ports:
- 27017:27017
networks:
- code-network
然后重启启动
docker-compose stop
docker-compose up -d
然后你可以进入到mongodb容器中,检查一下
ps -xa | grep mongod
如果现实 1 ? Ssl 0:01 mongod --bind_ip php
就没有问题了。
绑定ip后,外部访问将会报错:
[root@iZ942k2d5ezZ mongo]# mongo 144.202.52.147
MongoDB shell version v3.6.1
connecting to: mongodb://144.202.52.147:27017/test
2018-06-25T16:49:39.178+0800 W NETWORK [thread1] Failed to connect to 144.202.52.147:27017, in(checking socket for error after poll), reason: Connection refused
2018-06-25T16:49:39.179+0800 E QUERY [thread1] Error: couldn't connect to server 144.202.52.147:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed
[root@iZ942k2d5ezZ mongo]#
之前的那种配置,我测试是可以直接远程访问的,更改会就无法连接了
不是robomongo的问题,是没有加载配置导致的问题,进而没有绑定ip,进而都可以放问mognodb,而mongodb默认没有设置用户名和密码,进而可以被远程连接,进而给你清空了数据库。
直接 mongo ip地址
就可以连接,是这个问题造成的
我知道了,mongodb的默认配置是没有加载配置文件
而对于docker mongodb的配置
- ./db/mongodb/etc/mongod.conf:/etc/mongod.conf
docker 中的mongodb没有加载这个配置文件
执行
ps -xa | grep mongod
我的手动安装的mongodb显示 /usr/bin/mongod -f /etc/mongod.conf
而docker安装的mongodb显示
mongod --bind_ip_all
这说明没有加载挂载过来的配置文件,进而导致的问题
对于挂载到mongodb的配置文件:https://github.com/fecshop/yii2_fecshop_docker/blob/master/db/mongodb/etc/mongod.conf
如果mongodb启动加载这个就没有问题了,因为里面有绑定ip的配置
net:
port: 27017
bindIp: php # Listen to local interface only, comment to listen on all interfaces.
稍等,我整一下,让容器中的mongodb加载这个启动文件
https://github.com/fecshop/yii2_fecshop_docker/blob/master/db/mongodb/etc/mongod.conf
1.
1.读源码时发现appserver的Customer的EditaccountController.php的index初始化,个人认为应该加个未登录或者token过期的响应会不会更好?
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'authMethods' => [
# 下面是三种验证access_token方式
//HttpBasicAuth::className(),
//HttpBearerAuth::className(),
# 这是GET参数验证的方式
# http://10.10.10.252:600/user/index/index?access-token=xxxxxxxxxxxxxxxxxxxx
QueryParamAuth::className(),
],
];
2.在appserver的Customer的AddressController.php的actionRemove接口发现“stomer address:address id 不存在” 的提示缺少响应
这个是必须项
我也清楚为什么会这样
docker compose 配置docker部分也没有问题:
https://gist.github.com/wesleybliss/29d4cce863f5964a3eb73c42501d99e4
https://github.com/fecshop/yii2_fecshop_docker/blob/master/docker-compose.yml
比较一下,是没有问题的,你自己好好琢磨琢磨,
我去google 查看了下资料 docker mongodb data lost
,也没有类似的问题
mongodb数据存储在宿主主机的 ./db/mongodb/data
,
这个文件挂载到mongodb容器的 /data/db
里面
看你的内容,应该是数据丢失了,不清楚为什么丢失的
宿主主机的文件路径 ./db/mongodb/data
这里面的内容,你是不是动过啊?mongodb的数据就是存储在这里的
或者,你是否昨天执行了什么操作,进行了删除?
你大致回忆一下,干了那些事情,可能导致这个问题?
贴一下你的 docker-compose.yml 文件内容
你是否更改了这个文件的内容docker-compose.yml?
另外:https://github.com/fecshop/yii2_fecshop_docker 你是用的默认的,还是阿里云的那个yml文件构建的?