先介绍利用的两个数据卷挂载的规则,这对于理解挂载mysql数据库存储非常有帮助。

  1. 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中。
  2. 如果挂载一个非空的数据卷到容器中的一个目录中,那么容器中的目录中会显示数据卷中的数据。如果原来容器中的目录中有数据,那么这些原始数据会被隐藏掉。

mysql数据库物理存储位置/var/lib/mysql

MySQL:

拉取镜像

$docker pull mysql:5.7

运行容器

$docker volume create mysql
$docker run -d --name mysql -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7 -d : --detach,后台运行。
--name : 为你的镜像创建一个别名,该别名用于更好操作。
-p : 映射端口,一般我们会将默认端口进行更改,避免与本机的mysql端口冲突,如果你宿主机有mysql,请更改端口,如 -p 3307:3306。
-e : 环境变量。为mysql的root用户设置密码为root。
-v : 指定数据卷,意思就是将mysql容器中的/var/lib/mysql(这个是数据库所有数据信息文件)映射到宿主机/data/mysql里面。

允许远程连接

连接mysql,进行设置即可

$docker exec -it mysql /bin/bash
$mysql -u root -p
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

最后退出即可

这里又不得不提数据卷的特性,生命周期独立于容器,意味着我们可以创建新的mysql容器,只需要指定同一个数据卷就可以了。

至此简单的利用docker部署了一个简单的mysql容器,如果需要更个性化的conf,配置即可。

redis:

$ docker pull redis
$ docker run --name redis -d -p 6379:6379 redis

持久存储

$ docker run --name myredis -d -p 6379:6379 redis redis-server --appendonly yes

默认数据存储位置在 VOLUME/data。可以使用 --volumes-from some-volume-container 或 -v /docker/host/dir:/data 将数据存放到本地。

# 方案1
$ docker volume create redis
$ docker run --name myredis -d -p 6379:6379 -v redis:/data redis redis-server --appendonly yes
# 方案2
$ docker run --name myredis -d -p 6379:6379 -v /docker/host/dir:/data redis redis-server --appendonly yes

RabbitMQ

rabbitmq:
image: rabbitmq:3.7.15-management
container_name: rabbitmq
volumes:
- /root/mydata/rabbitmq/data:/var/lib/rabbitmq #数据文件挂载
- /root/mydata/rabbitmq/log:/var/log/rabbitmq #日志文件挂载
ports:
- 5672:5672
- 15672:15672

docker 部署mysql redis的更多相关文章

  1. 阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用

    一.购买云服务器 我是今年双十一期间在阿里云购买的服务器, 简单配置2核_4G_40G_3M,三年用了不到800块,不过当时我记得腾讯云更便宜,个人感觉,阿里的云服务器更加的稳定, 毕竟身经百战, 经 ...

  2. docker部署 mysql redis问题

    问题:(ubuntu不报错,centos报错) ERROR: : starting container process caused "process_linux.go:402: conta ...

  3. Docker 部署mysql

    目录 Docker 部署mysql 步骤 1.查找 Docker Hub 上的 MySQL 镜像 2.docker pull mysql 拉取镜像 3.运行容器 4.查看容器启动情况 使用命令备注 D ...

  4. docker(部署常见应用):docker部署mysql

    上节回顾:docker(部署常见应用):docker部署nginx docker部署mysql:5.7.26 # 下载镜像 docker pull mysql: # 查看镜像 docker image ...

  5. docker部署mysql Navicat远程连接

    docker部署mysql Navicat远程连接 docker search mysql   查看mysql镜像(是去dockerHub网站搜素镜像,遇到问题可以去该网站查看官方文档,纯英文文档估计 ...

  6. Docker:Docker部署mysql数据库

    docker部署mysql : 8.0 1.在宿主机创建mysql挂载目录 #创建目录 mkdir /home/mysql/conf mkdir /home/mysql/logs mkdir /hom ...

  7. springboot多数据源配合docker部署mysql主从实现读写分离

    本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...

  8. docker 部署mysql tomcat时 在root@localhost~下——-——docker exec -it 容器名 /bin/bash 报错

    在docker部署mysql时 报错 找不到 容器不自动启动  , docker start 容器名  也没有效果 多次尝试发现 原因是创建容器时在 下面创建的 更改为下创建 问题解决

  9. Docker部署mysql 5.7

    Docker部署mysql 5.7 准备工作 在CentOS或者Linux创建部署目录,用于存放容器的配置和MySQL数据:目的是当重装或者升级容器时,配置文件和数据不会丢失.执行以下命令: a.创建 ...

随机推荐

  1. 201871010102-常龙龙《面向对象程序设计(java)》第十周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  2. 201871010101-陈来弟《面向对象程序设计(Java)》第十一周学习总结

    201871010101-陈来弟<面向对象程序设计(Java)>第十一周学习总结 实验九  泛型程序设计技术 实验时间 2019-11-8 第一部分:理论基础知识 1.什么是泛型类 泛型是 ...

  3. python3汉诺塔简单实现代码

    小时候喜欢玩汉诺塔,今天用python实现简单的汉诺塔功能 代码: def hannoi(n,x,y,z): if n==1: print(x,'-->',z) else: hannoi(n-1 ...

  4. IDEA中的模板文件设置

    idea中的设置 Settings>Editor>File and code Templates>Includes>File Header 中粘贴下面的表达格式 /** * @ ...

  5. 微信小程序 - 登录(后端实现) | 授权(后端实现)

    登录与授权 官方文档 一.登录 登录流程时序 说明: 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器. 调用 code2Session 接口,换取 用户唯一标识 Ope ...

  6. 百度PaddlePaddle:

    百度正式发布PaddlePaddle深度强化学习框架PARL 近日,百度PaddlePaddle正式发布了深度强化学习框架 PARL,同时开源了基于该框架的.在 NeurIPS 2018 强化学习赛事 ...

  7. [NOI2019]回家路线(最短路,斜率优化)

    终于把这鬼玩意弄完了-- 为什么写的这么丑-- (顺便吐槽 routesea) 最短路的状态很显然:\(f[i]\) 表示从第 \(i\) 条线下来的最小代价. 首先明显要把那个式子拆开.直觉告诉我们 ...

  8. [LeetCode] 685. Redundant Connection II 冗余的连接之二

    In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) f ...

  9. [LeetCode] 598. Range Addition II 范围相加之二

    Given an m * n matrix M initialized with all 0's and several update operations. Operations are repre ...

  10. Matlab:Toeplitz矩阵-向量乘法的快速傅里叶(FFT)算法

    一.$\tt Toeplitz$矩阵与循环($\tt Circulant$)矩阵 定义 为$n\times n$阶循环矩阵. 定义 $T_n(i,j)=t_{j-i} $  为$n\times n$ ...