CentOS8安装Docker并创建MySQL镜像

1、安装Docker

1.1、卸载Docker

 注:sudo命令针对没登陆root的用户

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

1.2、安装工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

执行这一步如果报错

错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]

参考:修复错误:无法下载存储库“AppStream”的元数据 (linux-console.net)

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

然后重新执行安装命令

1.3、添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4、安装Docker

sudo yum -y install docker-ce

执行如果报错

执行这段

sudo yum install -y docker-ce --allowerasing

1.5、开启Docker服务

sudo systemctl start docker

1.6、开机自启Docker服务

sudo systemctl enable docker

1.7、查看Docker信息

sudo docker info

2、配置Docker

2.1、配置阿里云镜像

sudo vim /etc/docker/daemon.json

2.2、添加国内镜像源

{
          "registry-mirrors": 
        [
                      "https://registry.docker-cn.com",
                      "https://docker.mirrors.ustc.edu.cn",
                      "https://hub-mirror.c.163.com",
                      "https://hub.uuuadc.top",
                      "https://docker.anyhub.us.kg",
                      "https://dockerhub.jobcher.com",
                      "https://dockerhub.icu",
                      "https://docker.ckyl.me",
                      "https://docker.awsl9527.cn",
                      "https://mirror.baidubce.com"
       ]
}

2.3、重启Docker服务

sudo systemctl restart docker

3、安装MySQL

3.1、拉取MySQL镜像

sudo docker pull mysql

如果这里拉取超时需要配置一个DNS

        参考:如何完美解决 “error pulling image configuration: download failed after attempts=6: dial tcp 59.188.250.54“-CSDN博客

修改配置文件

sudo vim /etc/resolv.conf

添加以下内容:

nameserver 8.8.8.8
nameserver 8.8.4.4

修改Docker配置文件

sudo vim /etc/docker/daemon.json

添加以下内容:

"dns": ["8.8.8.8", "8.8.4.4"]

保存,然后重启Docker服务

sudo systemctl restart docker

然后重新拉取镜像

sudo docker pull mysql

3.2、查看镜像

docker images

3.3、创建容器

sudo docker run --name=mysql -it -p 3306:3306 -v /opt/data/mysql/mysqld:/var/run/mysqld -v /opt/data/mysql/db:/var/lib/mysql -v /opt/data/mysql/conf:/etc/mysql/conf.d -v /opt/data/mysql/files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -d mysql:8.0.13
docker run	创建一个新的容器 , 同时运行这个容器
–name mysql	 启动容器的名字
-d	 后台运行
-p 3306:3306	 将容器的 3306 (后面那个) 端口映射到主机的 3306 (前面那个) 端口
–restart unless-stopped	 容器重启策略
-v /mydata/mysql/log:/var/log/mysql	将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql	将mysql储存文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql	将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=123456	 设置 root 用户的密码
mysql:8.0.13	 启动哪个版本的 mysql (本地镜像的版本) 

3.4、进入MySQL容器内部

docker exec -it mysql /bin/bash
或者
docker exec -it mysql bash

执行
mysql -u root -p

密码是123456    (对应的docker run 后面输入的密码)

3.5、更改密码并授权

更改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

授权

GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION; 

如果这里报错

ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

参考:

修复 MySQL 8.4 的 "mysql_native_password is not loaded" 插件未加载错误 | 日思录 (tubring.cn)

3.6、刷新权限

FLUSH PRIVILEGES;

3.7、退出并开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl enable firewalld.service      //设置开机启用防火墙
systemctl disable firewalld.service     //设置开机禁用防火墙
systemctl start firewalld               //启动防火墙
systemctl stop firewalld                //关闭防火墙 
systemctl status firewalld              //查看防火墙状态
firewall-cmd --state                    //查看防火墙状态
firewall-cmd --reload                   //重新加载配置
firewall-cmd --list-ports               //查看已开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent      //开放端口3306
firewall-cmd --zone=public --remove-port=3306/tcp --permanent   //关闭端口3306

3.8、重启防火墙

systemctl restart firewalld

3.9、测试连接

密码是授权时写的密码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值