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

來源:互聯網
上載者:User

標籤:最新   src   dock   不同   error   compose   方案   錯誤   png   

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

使用的版本如下:

docker:  使用yum -y install docker

docker-compose: 使用pip install docker-compose

mongodb: docker pull mongodb:3.6.5

redis:docker pull redis:4.0.10

 

docker-compose使用的設定檔docker-compose.yml:

其中mongodb的entrypoint-initdb.d啟動的指令檔如下:

 

注意事項:

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操作,清理掉產生的容器。

以上做法,主要是防止修改前的設定檔已經產生了某些緩衝,造成修改設定檔後的執行的依然是緩衝的結果

 

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.