当前 linux 版本: centos 7.7
目录
1、安装 Docker
1.1、检查内核版本,必须是3.10及以上
uname ‐r
1.2、卸载历史
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.3、安装相关依赖
yum install -y yum-utils
备注: yum-utils 已经包含 yum-config-manager
1.4、指定docker安装信息源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.5、安装docker
yum install docker-ce docker-ce-cli containerd.io
1.6、启动docker
systemctl start docker
1.7、检查docker安装情况
docker -v
1.8、开机启动docker
systemctl enable docker
2、安装 MySQL
2.1、拉取mysql
docker pull mysql:5.7
2.2、启动mysql
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 镜像
2.3、mysql 配置
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
=======================================
-
2.4、进入 mysql (optional)
dokcer exec -it mysql /bin/bash
-
2.5、登录 mysql (optional)
mysql -u root -p
-
2.6、mysql 随 docker 自启动
docker update mysql --restart=always
注意:这里的 mysql 是容器的名字,不是镜像的名字。
3、安装 Redis
3.1、拉取最新的redis
docker pull redis
3.2、启动 redis
因为容器内只有 /etc/redis/ 没有 redis.conf 文件。系统会将主机的 /mydata/redis/conf/redis.conf 识别成目录。使用要先在主机中创建 redis.conf 文件,再挂载到容器内。
3.2.1、创建主机目录
mkdir -p /mydata/redis/conf
3.2.2、创建空白配置文件
touch /mydata/redis/conf/redis.conf
redis.conf (optional)
# 登录密码
# requirepass foobared
# aof模式
appendonly yes
3.3、启动redis
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 制定配置文件启动镜像
3.4、进入 redis (optional)
docker exec -it redis redis-cli
3.5、redis随 docker 自启动
docker update redis --restart=always
注意:这里的 redis 是容器的名字,不是镜像的名字。