使用visualBox创建Centos 7,搭建docker,安装mysql,及远程连接


前言 **

**趁最近离职有时间,所以开始学习分布式,听大家说windows搭建docker会有很多问题,所以决定搞一个虚拟机,用linux系统来搭建。**

正文:

准备工作:

1.采用vagrant简化搭建centos/7.

1.1 先下载visualBox https://www.virtualbox.org/ 版本 6.1.12

1.2 下载vagrant https://www.vagrantup.com/ 版本 2.2.9

1.3 下载visualBox 所需要的box(因为到时候下载的话很慢,提前用迅雷下载,速度快得多),复制的网址不能用,直接上图,图上标红的就是要下载的。 网址: http://www.vagrantbox.es/

问题:

1. visualBox进行安装需要cpu开启虚拟化

2.当安装完成后可以使用 vagrant -v进行测试,出现版本号即为成功。

环境搭建

1. 搭建系统**

1.1 下载的vagrant box放入vagrant中,方便初始化(下载的box必须要在当前目录下)

命令:  vagrant box add centos/7(设置的名字)   centos-7.0-x86_64.box(下载的.box名称)  

         设置完成可通过vagrant box list显示

1.2 进行初始化(这里指明box名字(centos/7),对应box list 里的box),会生成一个vagrantFile文件,用于后期配置

命令:   vagrant init centos/7

1.3 创建系统,同样指明名字

命令:   vagrant up

如果一切成功,可以在virualBox 里看的一台虚拟机,就是我们创建的,并且处于正在运行状态。

可以使用命令:vagrant ssh 进入系统,查看

当没有问题后,更改网络配置,虚拟机与宿主机相互ping通


更改网络配置(提前关闭系统,采用命令与手动在virualbox关闭都一样):找到创建目录下的vagrantFile文件,这里的ip是通过查看本机的分配给virualBox的地址得出,不要一样ip,尾数更换,和我一样加个0,XXX.XXX.XX.10,即可,更改完后,启动生效

其他命令:vagrant halt(关闭虚拟机),vagrant up 启动虚拟机(必须要在创建的目录下启动),vagrant reload (重启虚拟机)

2.搭建系统运行环境

2.1 安装docker(docker 相关命令都在root下,建议su root 切换成root 权限,密码为 vagran)

官方文档: https://docs.docker.com/engine/install/centos/

我实际操作(免除部分无效操作和更换地址):

2.1.1 安装所需软件包

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

2.1.2 设置 安装软件地址(阿里云地址)

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

2.1.3 进行安装(一路y就行)

sudo yum install docker-ce docker-ce-cli containerd.io  



   2.1.4 运行docker


     sudo systemctl start docker

2.1.5 可以通过查看docker info 来查看docker 是否已经安装好(如果没安装好,运行都不行的0.0,所以这一步没啥必要)

**2.2** docker 配置镜像加速(可以通过阿里云容器服务里看) 阿里云地址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

2.2.* 大部分教程到上一步就没了,但是我实际配置过程中,配置加速后,依然不可以加速(可以通过 docker pull mysql:5.7 试试,能否下载成功),找了很多资料,最后看到需要在

vim /etc/resolv.conf
在后面添加(先双击i,进入插入模式,添加完毕后,按两次Esc键,然后:wq ,保存并退出)
nameserver 8.8.8.8

到此,再次 docker pull mysql:5.7 ,成功下载。(ps:镜像加速的网络配置在重启后就没了,再次添加或者寻找可永久添加的方法,这里就不写了)

2.3 使用docker安装 mysql

2.3.1 将端口映射出去,这样可以直接访问虚拟机IP+端口就可以同时访问docker里的mysql

# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
sudo 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

运行成功后,可以通过docker ps来查看所有正在运行的容器

可以通过my.conf 设置一下格式

vi /mydata/mysql/conf/my.conf 

[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

2.3.2 设置完成后,还并不可以通过宿主机navicet 连接,还需要设置可远程访问。

2.3.3

mysql 设置远程连接

iptables 开启端口映射:  

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT

iptables -L -n (查看端口是否启用)

进入mysq:

docker exec -it mysql1 mysql -uroot -p root

进入mysql数据库:

use mysql

修改root访问权限(先查看是否只有一个root,如果有两个root角色就会报错)

update user set host = '%' where user = 'root';


flush privileges;  刷新权限


重启docker和mysql:  
systemctl restart docker和docker start mysql

至此,连接成功。


原文链接:https://www.cnblogs.com/PierreZ/p/13474936.html