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 ...
随机推荐
- Oracle通用维、父子维相互转换
所谓通用维即维度层级1.2.3均作为字段展示为列,父子维即维度id+父级维度+维度层级字段 通用维 lvl_id1 lvl_name1 lvl_id2 lvl_name2 lvl_id3 lvl_na ...
- 浏览器关闭,onunload和onbeforeunload的使用
系统描述:用户与管理员客服聊天,当用户在五分钟之内不说话,则客服会在5分钟后断开.当直接关闭浏览器页面时,后台管理员就无法检测到这种状态,此用户无法从管理员的服务列表里面清除 onunload和onb ...
- python正则表达式补充
import re origin= "hello alex bcd alex 1ge alex acd 19" r=re.match("(?P<n1>h)(? ...
- mask_rcnn训练自己的数据集
1.首先从官方下载mask_rcnn源码https://github.com/matterport/Mask_RCNN 2.首先将demo.ipynb转换成demo.py,这里我顺便更改为适用于我自己 ...
- LeetCode算法历程-02
编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 × 3 示例 2: 输入: 8 输出: true ...
- 重新复习~ 为了重新找工作 - > XMLHttpRequest2.0 Jsonp nodeType 节点 webpack基本搭建 闭包的一句话总结
XMLHttpRequest2.0 1.可以设置超时 (xhr.timeout = 1000; ontimeout()函数) 2.支持FormData对象管理表单数据(new FormData 方法: ...
- UIMediaScanner从相册读取资源的功能
iPhone的照片上传到了iCloud,本地的照片就被压缩,每当你要查看这些照片的时候就需要下载,不然上传的图片就是缩略图. //图片多张选择 function select_album(max, c ...
- dede织梦系统接入熊掌号推送api,完整详细教程
第一步: 根据熊掌号要求完成校验页面,官方文档很详细,照着弄就行了 第二步: 开始后台改造 1.进入后台文件夹dede(自己实际的文件夹),然后进入templets目录,打开body_inde ...
- 实践作业4 Web测试(小组作业分配)
经过小组内的讨论之后,我们小组的工作分配如下: 张赛军.闫昊:阶段一,软件评测: 林俊旭:阶段二,用户调研: 张嘉焰:阶段三,得出结论: 许林龙:阶段四,分析: 王奎:阶段五,每日记录,并汇总整理小组 ...
- JavaScript的popup框
JavaScript中可以创建三种消息框:警告框.确认框.提示框. 1.警告框 警告框经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法:alert(&q ...