前言

   趁最近离职有时间,所以开始学习分布式,听大家说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

  

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

    命令:   vagrant init centos/7

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

  命令:   vagrant up centos/7

 

         如果一切成功,可以在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访问权限

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

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!