Docker运行Mysql和redis镜像

        在拉取Mysql镜像以后,就之可以直接的docker run 了,但是通常是希望运行后的数据要要被保存的,即使是我们平时自己学习的数据,不可能每次都需要重新搞一次数据吧。

        运行命名:

sudo docker run \
-d \
-p 3306:3306 \
--privileged=true \
-v /var/mysql/log:/var/log/mysql \
-v /var/mysql/data:/var/lib/mysql \
-v /var/mysql/conf.d:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql

因为会存在中文乱码问题,所以需要先去调整配置文件,根据上面的设置,配置文件在宿主机的

/var/mysql/conf.d 目录下,所以进入目录,sudo vim my.cnf ,贴如下配置

[client]
default_character_set=utf8mb4
 
[mysql]
default_character_set=utf8mb4
 
[mysqld]
init_connect='SET NAMES utf8mb4'
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci

如果在调整配置文件之间,已经运行了的mysql 实例,最好是重启一下

sudo docker restart mysql   
# 最后的mysql也可以是容器id,此mysql 并不是 镜像名称,而是实例名称 --name 参数指定的

再运行命令,打开mysql交互界面,就行了,后面的就是mysql的内容了

sudo docker exec -it mysql /bin/bash

最后可以通过命令,查看设置的编码格式生效与否

show variables like 'character%';

Run Redis

运行redis 也差不多,但是需要注意的是配置文件(redis.conf)有几个需要注意的地方

1. bind 127.0.0.1 -::1 ->改为 0.0.0.0,要不然只能本地连接,显然是不行的,需要docker可以访问

2. daemonize yes -> 改为 no,如果不改会导致和docker run -d 参数冲突,从而启动不成功

3. appendonly no -> 改为 yes ,这个是可选的,建议改,毕竟redis在生产中大部分是需要AOF持久化的 (默认路径 /var/lib/redis ,aof文件默认名称: appendonly.aof,rdb文件默认名称: dum.rdb)

4. 设置密码 requirepass <your-password>(当然,如果启用了ACL,要确认default用户是否冲突哈),然后将 protected-mode 设置为 no

5. dir /var/lib/redis -> 改为 /data

一个简单的配置文件:

bind 0.0.0.0
port 6379
dir /data
dbfilename dump.rdb
appendonly yes
appendfilename "appendonly.aof"
appenddirname "appendonlydir"
requirepass 123456
protected-mode no

设置完成以后,运行

sudo docker run \
-p 6379:6379 \
--privileged=true \
-v /etc/redis:/usr/local/etc/redis \
-v /var/lib/redis:/data \
--name redis \
-d redis:7.0-alpine \
redis-server /usr/local/etc/redis/redis.conf

这里运行的redis 是阉割版的,部分配置参数不支持,如果直接使用 官方的 redis.conf 文件可能会导致容器起不起来,可以通过查看日志,然后去调整就好了,日志命令:

sudo docker logs <container-id> 或者 <container-name>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值