Linux 安装Docker + MySQL + minio
安装Docker
Docker详细安装方法请参考Docker官方安装手册:docker安装。这里只简单记录一下docker的安装。
卸载旧的docker
Docker官方文档提到,在下载Docker之前需要先将旧的Docker进行卸载。
注意:/var/lib/docker/目录下面的文件不会自动因卸载而移除。
- 卸载命令 :
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
- 当然假如以前没安装过可以直接跳过此步骤。
下载docker的资源
- 下载命令 :
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker引擎
- 安装命令 :
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动并验证Docker
- 启动命令 :
systemctl start docker
- 验证命令 :
docker run hello-world
创建Docker组,将普通用户加载进来
一般来说,安装完Docker时,系统会自动创建docker的用户组。
- 查看docker用户组 :
grep docker /etc/group
- 没有就创建docker组 :
groupadd docker
- 添加普通用户入docker组 :
sudo usermod -aG docker username
- 普通用户进行验证 :
docker run hello-world
Docker的常用命令
Docker安装mysql
Docker安装mysql相对于直装MySQL而言要简单许多,在创建一个MySQL容器的时候可以直接带参数,后续不用修改MySQL的配置文件。ps:Linux中安装的MySQL对于表名是大小写敏感的。
docker拉取最新版的MySQL
- 查看docker用户组 :
docker pull mysql:latest
- 查看docker镜像 :
docker images //这时候会看到回显的MySQL镜像
- 运行镜像 :
docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=root -d mysql:latest \
--lower_case_table_names=1
命令解释:
-p 3306:3306:指定宿主机端口与容器端口映射关系
--name mysql:创建的容器名称
--restart=always:总是跟随docker启动
--privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest。
--lower_case_table_names=1:设置安装好的MySQL表名大小写敏感问题
查看正在运行的容器
- 执行命令 :
docker ps -a
- 进入到docker终端并进入MySQL
docker exec -it mysql /bin/bash
mysql -uroot -p
其他说明
有时候我们在创建完容器以后才发现有一些配置没有加上,而且更改MySQL的配置又比较麻烦,就直接按着以下步骤走就行了。
修改MySQL的配置
- 创建mysql配置文件:my.cnf
cd /usr/local/mysql
ll
cd conf
vi my.cnf
- 将下列内容粘贴入配置文件
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 设置东八区时区
default-time_zone = '+8:00'
# 设置密码验证规则,default_authentication_plugin参数已被废弃
# 改为authentication_policy
#default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password
# 限制导入和导出的数据目录
# 为空,不限制导入到处的数据目录;
# 指定目录,必须从该目录导入到处,且MySQL不会自动创建该目录;
# 为NULL,禁止导入与导出功能
#secure_file_priv=/var/lib/mysql
secure_file_priv=
init_connect='SET collation_connection = utf8mb4_0900_ai_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
skip-character-set-client-handshake
skip-name-resolve
lower_case_table_names=1
3.重启MySQL容器:docker restart mysql
MySQL的远程访问
- 进入MySQL容器:
docker exec -it mysql /bin/bash
- 登录MySQL:
mysql -uroot -p
- 设置数据库远程访问:
create user 'root'@'%' identified with mysql_native_password by 'root';
- 放开root用户的权限:
grant all privileges on *.* to 'root'@'%' with grant option;
- 重新加载数据库配置:
flush privileges;
- 放开服务器3306端口防火墙限制:
firewall-cmd --add-port=3306/tcp --permanent //开放3306端口
systemctl restart firewalld //重启防火墙
firewall-cmd --reload /重新加载防火墙配置
7.连接navicat