当前 linux 版本: centos 7.7
目录
1、安装 Docker
1.1、检查内核版本,必须是3.10及以上
1.2、卸载历史
1.3、安装相关依赖
1.4、指定docker安装信息源
1.5、安装docker
1.6、启动docker
1.7、检查docker安装情况
1.8、开机启动docker
2、安装 MySQL
2.1、拉取mysql
2.2、启动mysql
2.3、mysql 配置
2.4、进入 mysql (optional)
2.5、登录 mysql (optional)
2.6、mysql 随 docker 自启动
3、安装 Redis
3.1、拉取最新的redis
3.2、启动 redis
3.2.1、创建主机目录
3.2.2、创建空白配置文件
3.3、启动redis
3.4、进入 redis (optional)
3.5、redis随 docker 自启动
官方安装教程:https://docs.docker.com/engine/install/centos/
uname ‐r
yum install -y yum-utils
备注: yum-utils 已经包含 yum-config-manager
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
docker -v
docker pull mysql:5.7
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
参数说明
-p 3306:3306 将容器的 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 初始化 root 用户的密码
-d mysql:5.7 以守护进程方式启动 mysql:5.7 镜像
vim /mydata/mysql/conf/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
============== 2020/05/20 添加 ==============
bug:
导入 SQL 的时候出现 Error #1055
reason:
在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。
ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select语句中查询出来的列必须是明确的(其他语句也是一样)。
fix:
1. 在配置文件 [mysqld] 下添加
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
2. 重启 mysql 容器。
注意: mysql为容器的名字,不同的请更换。或使用容器ID即可。
docker restart mysql
=======================================
dokcer exec -it mysql /bin/bash
mysql -u root -p
docker update mysql --restart=always
注意:这里的 mysql 是容器的名字,不是镜像的名字。
docker pull redis
因为容器内只有 /etc/redis/ 没有 redis.conf 文件。系统会将主机的 /mydata/redis/conf/redis.conf 识别成目录。使用要先在主机中创建 redis.conf 文件,再挂载到容器内。
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
redis.conf (optional)
# 登录密码
# requirepass foobared
# aof模式
appendonly yes
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
参数说明
-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 制定配置文件启动镜像
docker exec -it redis redis-cli
docker update redis --restart=always
注意:这里的 redis 是容器的名字,不是镜像的名字。