centos7 docker下安装mysql和redis

docker下安装mysql和redis

  • 安装mysql
    • 下载
    • 查看镜像
    • 启动mysql
    • 修改配置
    • 进入容器查看配置
  • 安装redis
    • 下载redis
    • 配置redis
    • 测试
    • 设置redis容器在docker启动的时候启动

安装mysql

下载

docker pull mysql:5.7

输入这条命令后,docker会自动下载mysql镜像

查看镜像

docker images

启动mysql

前一个3306指虚拟机的端口,冒号后面的指容器的端口
docker run ***:运行容器
-v 表示目录的挂载,前面的目录指虚拟机的目录,冒号后面的指容器中的目录。这样我们就可以在虚拟机目录中修改配置和查看日志,而不用到容器目录中了。
-e 设置参数,这里设置的密码
-d 以mysql5.7这个镜像启动容器
每一个容器都相当于一个完整的linux系统

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

出现一串数,就说明已经启动好了
docker ps 可以查看运行中的容器

修改配置

添加my.cnf
设置字符集为utf-8
因为容器中的conf文件夹已经挂载到linux中了,所以只要修改linux中的文件夹,容器里面的就会跟着变

[root@shop ~]# cd /mydata/mysql/conf

[root@hadoop-104 conf]# cat my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
[root@hadoop-104 conf]# 

[root@hadoop-104 conf]# docker restart mysql
mysql
[root@hadoop-104 conf]# 

需要重启容器才能生效

进入容器查看配置

进入容器命令:docker exec -it 容器名 容器中的哪个目录

[root@hadoop-104 conf]# docker exec -it mysql /bin/bash
root@b3a74e031bd7:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql

root@b3a74e031bd7:/# ls /etc/mysql 
my.cnf
root@b3a74e031bd7:/# cat /etc/mysql/my.cnf 
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
root@b3a74e031bd7:/# 

mysql安装完成!

安装redis

下载redis

docker pull redis

如果卡住了,就重新pull一次!

配置redis

redis配置文件默认是不存在的,所以要先创建
执行下面4条语句
前两条完成需要的配置文件的创建
第三条加入appendonly yes表明redis中的数据要进行持久化
第四条完成docker中配置文件和系统配置文件的对应 -d表示模式使用redis容器中的配置文件

[root@hadoop-104 ~]# mkdir -p /mydata/redis/conf
[root@hadoop-104 ~]# touch /mydata/redis/conf/redis.conf
[root@hadoop-104 ~]# echo "appendonly yes"  >> /mydata/redis/conf/redis.conf
[root@hadoop-104 ~]# docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

测试

到redis容器中,插入一条redis语句。

[root@hadoop-104 ~]# docker exec -it redis redis-cli
127.0.0.1:6379> set key1 v1
OK
127.0.0.1:6379> get key1
"v1"
127.0.0.1:6379>

然后重启一下redis容器

docker restart redis

再执行

[root@hadoop-104 ~]# docker exec -it redis redis-cli
127.0.0.1:6379> get key1
"v1"

可以取到则说明持久化成功

设置redis容器在docker启动的时候启动

[root@hadoop-104 ~]# docker update redis --restart=always

在本地安装一个 RedisDesktopManager可视化工具 ,连接linux上的redis,可以更直观的操作redis

你可能感兴趣的:(centos7 docker下安装mysql和redis)