最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker容器使用宿主機(jī)上的mongod/redis等服務(wù)詳解

 更新時(shí)間:2020年11月18日 17:09:13   作者:張大猛子呦  
這篇文章主要介紹了Docker容器使用宿主機(jī)上的mongod/redis等服務(wù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

我們?cè)诒镜氐拈_(kāi)發(fā)中為了保證大家都開(kāi)發(fā)環(huán)境一直,PHP 的擴(kuò)展,版本保持一致, 我們使用了 docker .但是由于redis/mongodb 在宿主機(jī)上, 所以通過(guò) 127.0.0.1 是連接不上的

前提說(shuō)明

這個(gè)是在 docker 運(yùn)行容器時(shí)使用的橋接模式(默認(rèn)) 時(shí)才會(huì)發(fā)生以上問(wèn)題.如果使用 host 模式就沒(méi)有.

所以,我們就是要把是 docker 的網(wǎng)絡(luò)模式設(shè)置為 host 模式.

具體實(shí)現(xiàn)

~ docker run --network host php56

補(bǔ)充說(shuō)明

使用了 host 模式后,則表示宿主機(jī)與容器共享宿主機(jī)的 IP,端口. 如果不希望與宿主機(jī)共享,則不能使用這種方式

如果你的電腦是 Mac, 并且你的docker 版本大于18.03,則你可以在代碼中使用 docker.for.mac.localhost 來(lái)連接宿主機(jī)上的服務(wù).

//使用示例

//以連接 mongod 為例

$mongodb = new \MongoDB\Driver\Manager('mongodb://docker.for.mac.localhost/:27017');

Windows 跟 Linux 暫時(shí)還沒(méi)有發(fā)現(xiàn)可以在橋接模式下可以通過(guò)特使字符來(lái)使用宿主機(jī)上服務(wù)的方法。

如果各位有好的方法,歡迎留言討論。

補(bǔ)充知識(shí):Docker無(wú)法連接宿主機(jī)數(shù)據(jù)庫(kù)

redis

已經(jīng)修改過(guò)為宿主機(jī) ifconfig命令下 docker0的 172.17.0.1 連接地址,還是無(wú)法連接redis

docker中redis配置信息

 # redis配置信息
 REDIS_HOST = '172.17.0.1'
 REDIS_PORT = 6379
 LEVEL_NAME = logging.DEBUG

 # session配置
 SESSION_TYPE = 'redis' # 設(shè)置redis存儲(chǔ)的類型
 SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT) # 指定session存儲(chǔ)的redis服務(wù)器
 SESSION_USE_SIGNER = True # 設(shè)置簽名存儲(chǔ)

不利用守護(hù)方式啟動(dòng)容器,可以看到redis、mysql連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)

解決辦法

修改redis.conf文件第69行,把 bind 127.0.0.1 改為 0.0.0.0

redis恢復(fù)連接

mysql

class ProductConfig(Config):
 # 數(shù)據(jù)庫(kù)配置信息
 SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@172.17.0.1:3306/information'
 SQLALCHEMY_TRACK_MODIFICATIONS = False
 SQLALCHEMY_COMMIT_ON_TEARDOWN = True # 每當(dāng)改變數(shù)據(jù)內(nèi)容之后,在視圖函數(shù)結(jié)束的時(shí)候會(huì)自動(dòng)提交

 DEBUG = False
 LEVEL_NAME = logging.ERROR

以權(quán)限用戶root登錄

選擇mysql庫(kù)

查看mysql庫(kù)中的user表的host值(即可進(jìn)行連接訪問(wèn)的主機(jī)/IP名稱)

改host值(以通配符%的內(nèi)容增加主機(jī)/IP地址),當(dāng)然也可以直接增加IP地址

刷新MySQL的系統(tǒng)權(quán)限相關(guān)表

MariaDB [(none)]> use mysql;
MariaDB [mysql]> SELECT user, host FROM mysql.user
MariaDB [mysql]> update user set host = '%' where user ='root' and host='localhost';
MariaDB [(mysql)]> flush privileges;

測(cè)試一下

問(wèn)題解決

這兩種開(kāi)放所有地址訪問(wèn)都會(huì)有安全隱患

以上這篇Docker容器使用宿主機(jī)上的mongod/redis等服務(wù)詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

分宜县| 普洱| 阆中市| 沅江市| 苗栗市| 阜城县| 汝城县| 临颍县| 平原县| 红安县| 横峰县| 汨罗市| 崇明县| 玉田县| 张家川| 惠东县| 阜康市| 临沂市| 新建县| 黎城县| 会泽县| 越西县| 嵊泗县| 天津市| 泰和县| 图木舒克市| 神农架林区| 凌海市| 镇坪县| 东港市| 南丹县| 元朗区| 巴林右旗| 巢湖市| 古蔺县| 凤城市| 佛山市| 古浪县| 漳浦县| 昂仁县| 山东省|