docker-compose部署mongodb+redis遇到的問題

Demo環境下須要用到Redis+mongodb兩種DB配合使用,因此暫時直接使用docker的redids和mongodb鏡像,用docker-compose進行聯合部署redis

使用的版本以下:mongodb

docker:  使用yum -y install dockerdocker

docker-compose: 使用pip install docker-compose緩存

mongodb: docker pull mongo:3.6.5測試

redis:docker pull redis:4.0.10spa

 

docker-compose使用的配置文件docker-compose.yml:3d

其中mongodb的entrypoint-initdb.d啓動的腳本文件以下:blog

 

注意事項:ip

1. 安裝docker-compose的方式,用了兩種安裝方式,一種是yum -y install docker-compose,第二種是 pip install docker-compose部署

不想折騰的或者沒必要用新的版本的狀況下,建議用第一種吧,比較省心。第二種能夠安裝最新的版本,可是會遇到各類庫的版本依賴問題,最多見的就是對於requests的版本依賴,

主要因爲docker 和 docker-compose依賴的版本有不一樣要求,須要安裝其共同版本既要支持docker的版本又要知足docker-compose的版本,不然最容易遇到

ValueError: Timeout value connect was Timeout(connect=None, read=None, total=None), but it must be an int, float or None.的錯誤

一個比較快捷的解決方案是:

(1). pip uninstall docker-compose  ,pip uninstall docker, pip unstall requests(這裏是重點,可能已經安裝了好幾個版本的requests,必須把全部版本都卸載)

(2). pip install docker, pip install docker-compose

使用 pip 自動關聯相關版本

2. 在折騰mongodb啓動腳本(主要爲了啓動就建立用戶和密碼),不斷修改測試docker-compose.yml的配置文件時候,須要注意的是,上邊yml裏邊配置,將mongodb的 /data/db 文件夾

映射到了本地,可是當修改完配置文件進行測試時,最好將mongodb /data/db 裏生成的文件都清理乾淨,而且若是使用 docker-compose up 直接觀察log輸出時,若是測試完退出了docker-compose

終端,必須進行docker-compose down操做,清理掉生成的容器。

以上作法,主要是防止修改前的配置文件已經生成了某些緩存,形成修改配置文件後的執行的依然是緩存的結果

相關文章
相關標籤/搜索