简单记录Linux 安装Docker + MySQL

安装Docker

Docker详细安装方法请参考Docker官方安装手册:docker安装。这里只简单记录一下docker的安装。

卸载旧的docker

Docker官方文档提到,在下载Docker之前需要先将旧的Docker进行卸载

注意/var/lib/docker/目录下面的文件不会自动因卸载而移除

  1. 卸载命令yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
  2. 当然假如以前没安装过可以直接跳过此步骤

下载docker的资源

  1. 下载命令
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker引擎

  1. 安装命令
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动并验证Docker

  1. 启动命令
systemctl start docker
  1. 验证命令
docker run hello-world

创建Docker组,将普通用户加载进来

一般来说,安装完Docker时,系统会自动创建docker的用户组。

  1. 查看docker用户组
grep docker /etc/group
  1. 没有就创建docker组
groupadd docker
  1. 添加普通用户入docker组
sudo usermod -aG docker username
  1. 普通用户进行验证
docker run hello-world

Docker的常用命令

docker的常用命令

Docker安装mysql

Docker安装mysql相对于直装MySQL而言要简单许多,在创建一个MySQL容器的时候可以直接带参数,后续不用修改MySQL的配置文件ps:Linux中安装的MySQL对于表名是大小写敏感的

docker拉取最新版的MySQL

  1. 查看docker用户组
docker pull mysql:latest
  1. 查看docker镜像
docker images //这时候会看到回显的MySQL镜像
  1. 运行镜像
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表名大小写敏感问题

查看正在运行的容器

  1. 执行命令
docker ps -a
  1. 进入到docker终端并进入MySQL
docker exec -it mysql /bin/bash

mysql -uroot -p

其他说明

有时候我们在创建完容器以后才发现有一些配置没有加上,而且更改MySQL的配置又比较麻烦,就直接按着以下步骤走就行了。

修改MySQL的配置

  1. 创建mysql配置文件:my.cnf
cd /usr/local/mysql
 
ll
 
cd conf
 
vi my.cnf
  1. 将下列内容粘贴入配置文件
[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的远程访问

  1. 进入MySQL容器docker exec -it mysql /bin/bash
  2. 登录MySQLmysql -uroot -p
  3. 设置数据库远程访问
create user 'root'@'%' identified with mysql_native_password by 'root';
  1. 放开root用户的权限
grant all privileges on *.* to 'root'@'%' with grant option;
  1. 重新加载数据库配置flush privileges;
  2. 放开服务器3306端口防火墙限制
firewall-cmd --add-port=3306/tcp --permanent   //开放3306端口
systemctl restart firewalld    //重启防火墙
firewall-cmd --reload    /重新加载防火墙配置

7.连接navicat
在这里插入图片描述

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值