docker-compose部署mongodb+redis遇到的问题
Demo环境下需要用到Redis+mongodb两种DB配合使用,所以暂时直接使用docker的redids和mongodb镜像,用docker-compose进行联合部署
使用的版本如下:
docker: 使用yum -y install docker

docker-compose: 使用pip install docker-compose

mongodb: docker pull mongo: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遇到的问题的更多相关文章
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
- Docker Compose 部署 Redis 及原理讲解 | 懒人屋
原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解 4.4k 字 16 分钟 2019-10-1 ...
- 云服务器配置 docker java mysql mongodb redis nginx 环境
磁盘挂载 fdisk -l #查看磁盘列表 mkfs.ext4 /dev/vdb #格式化磁盘 mount /dev/vdb /data #挂载磁盘在/data echo '/dev/vdb /dat ...
- Docker Compose 部署前后端分离应用
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 在Windows Server 2019通过Docker Compose部署Asp.Net Core
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
- 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署Nexus3时的docker-compose,yml代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
随机推荐
- centes7安装wdcp
CentOS7安装WDCP3 CentOS7安装WDCP3.2面板教程 到此WDCP安装完毕
- go-ethereum源码分析 PartIII 共识流程
A: js指令转化为新transaction 在web3上操作流程 1. import to web3 2. connect to peers 3. read local key store 4. d ...
- 怎样用div做三角形
20181204 用盒子模型做三角形的效果: <div></div> width:0px; height:0px; border:10px solid red; border- ...
- flask 第二章 endpoint重名 Flask路由 初始化配置 Falsk Config 蓝图+目录结构
今日内容 1.路由的分发,以下两种方式效果一样,但是都能指向同一个函数 from flask import Flask app=Flask(__name__) #第一种方式 @app.route('/ ...
- ios调用Google地图
现在的ios版本一般只支持https协议,而引用谷歌地图API时只提供src="http://maps.google.cn/maps/api/js..",https协议无法使用,解 ...
- 关于WCF服务 http://XXXXXX/XXX/xxx.svc不支持内容类型 application/sop+xml;charset=utf-8 错误解决方法
有时候用IIS部署一个WCF服务时,无论是在客户端还是在服务端通过地址都能正常访问. 但是当你在客户端添加服务引用时, 怎么也添加不上, 会碰到了如下错误: 好啦. 现在说说怎么解决吧. 其实很简单. ...
- Java 使用 Redis存储系统
redis是一个key-value存储系统.它支持存储的value类型很多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希 ...
- JS---作用域和作用域链
JS---作用域和作用域链 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两种. //常犯的一个错误 &l ...
- 常用的数学函数-S
// abs — 获取[数值]的绝对值 $; echo abs($int).'<br>'; $float=-2.34; echo abs($float).'<hr>'; //c ...
- alibaba/druid 下的 密码加密
使用ConfigFilter cliangch edited this page on 3 Feb · 12 revisions ConfigFilter的作用包括: 从配置文件中读取配置 从远程ht ...