一、mysql安装
1.docker安装请到https://docs.docker.com/engine/install/centos/根据步骤安装
2.配置阿里云镜像,到阿里云搜索容器服务,找到控制台的镜像加速器,以下需要修改的地方已说明:
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://阿里云上自己的前缀.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.从远程DockerHub镜像仓库拉取mysql
# 切换root用户获取权限
su root
# 设置docker开机自动启动
systemctl enable docker
# 这里拉取版本号5.7的mysql
docker pull mysql:5.7
4.启动容器
# --name指定容器名字 -v主机目录与容器目录映射方面我们在本地查看mysql配置等文件
# -p主机端口与容器端口映射 -e设置mysql参数 -d后台运行
sudo 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
5.设置docker启动后容器自动启动(不然关机后docker启动不会自动启动容器,避免手动启动)
# name --容器名或id
docker update name --restart=always
6.进入docker容器验证
# name --容器名或id
docker exec -it name bin/bash
#进入mysql
mysql -uroot -proot
#退出
exit
7.编辑本地映射的mysql配置文件配置中文字符乱码问题文件
#进入本地映射的目录/mydata/mysql/conf/下创建my.conf配置文件
touch my.conf
#编辑配置文件
vi /mydata/mysql/conf/my.conf
加入以下内容:
[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
8.重启mysql
docker restart mysql
二、redis
1.手动创建redis本地配置文件,避免进入容器修改配置文件,下面做映射后可直接在本地修改配置文件
#创建目录 -p 传递创建
mkdir -p /mydata/redis/conf
#创建redis配置文件
touch /mydata/redis/conf/redis.conf
2.拉取redis镜像、启动容器
docker pull redis
# --name指定容器名字 -v主机目录与容器目录映射方面我们在本地查看redis配置等文件
# -p主机端口与容器端口映射 -d后台运行
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
# name --容器名或id
docker update name --restart=always
#进入redis客户端
docker exec -it redis redis-cli
3.redis aof持久化可在配置文件中加入如下:
#修改配置文件
vi /mydata/redis/conf/redis.conf
#加入如下
appendonly yes
4.重启
docker restart redis