zoukankan      html  css  js  c++  java
  • VirtualBox+Vagrant+Centos 7,安装Docker,使用Docker安装配置MySQL

    一.安装Linux虚拟机

    本次讲解的是开源免费的虚拟机实现方案:VirtualBox+Vagrant

    1.下载VirtualBox:

     1.1 浏览器搜索VirtualBox,进入官网

    1.2 点击下载Windows版本

     

    1.3 安装,建议不要安装在C盘,安装完成打开后如下图

    1.4 电脑开启虚拟化技术

    注:电脑配置低或老电脑一般不会开启虚拟化

    是否开启判断方式:如果电脑曾经安装过VMware+CentOS,并且正确启动,肯定已经打开了虚拟化

    2.安装Vagrant获取并安装系统

    2.1 浏览器搜索Vagrant,进入官网

    2.2 点击下载Windows 64版本

     

    2.3 安装,建议不要安装在C盘,安装完重启电脑

    2.4 判断是否安装完成:cmd中输入vagrant,如果有一堆命令提示,就表明安装成功! 

    2.5 获取镜像:在cmd中输入vagrant init centos/7,获取一个CentOs镜像,效果如下图,意思为在你电脑系统当前登录用户目录下,创建了一个Vagrantfile文件

    注: vagrant init xxx表示初始化一个镜像,xxx取值来自于vargrant的镜像仓库。

    2.6 启动虚拟环境:cmd中输入命令vagrant up,会去官方下载镜像,并自动导入到VirtualBox内,并自动启动。下载是一个漫长的过程,出现如下图这样的话表示启动成功:

     

    3.使用系统

    3.1 接着cmd继续下去:

    ctrl+c 结束启动提示

    vagrant ssh 连接虚拟机

    连接完毕,即可把cmd当成xshell使用。

    3.2 上上图中出现的xfyuao_default虚拟机上右键可以启动或停止虚拟机,也可在cmd中输入vagrant up启动虚拟机

    3.3 可能的问题:VirtualBox可能会和以下软件有冲突导致虚拟机无法启动等:红蜘蛛、净网大师、360、其他未知软件。解决办法:卸载这些软件并重启电脑。

    4.其他终端连接

    4.1 为方便我们外部的W10直连虚拟机,需要在Vagrantfile文件内配置虚拟机的ip地址,ip地址段要和VirtualBox保持一致。

    Vagrantfile文件在电脑登录用户的目录下,如我的在:C:Usersxfyuao

    ip段查看方式如下图,要在cmd中输入ipconfig/all,找到对应网卡的地址

    编辑Vagrantfile文件,大约在35行,#表示注释,复制#后内容,粘贴到下一行,ip改为VirtualBox同一地址段,如上图可修改为:

    config.vm.network "private_network", ip: "192.168.56.x"

    其中x取2-255之间,建议范围100-200,修改后如下图:

     

    4.2 重启虚拟机或输入命令vagrant rolad重启虚拟机,即可和W10互相ping通

    4.3 开启远程登录,修改“/etc/ssh/sshd_config”

    PermitRootLogin yes 
    PasswordAuthentication yes

    然后重启SSHD

    systemctl restart sshd

    即可使用Xshell等进行远程连接

    二.Docker

    docker是一种虚拟化容器技术,基于镜像,可以秒级启动各种容器,每一种容器都是一个完整的运行环境,容器之间互相隔离。换句话说就是docker会为每个软件都创建一个linux系统存放它们。

    1.Cent OS下安装Docker

    1.1 安装docker,获取响应系统下的安装命令,如下图:

    1.2 以下命令均来自上图。先卸载旧版本:连上centos的终端,建议使用Xshell,管理员角色运行

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

    1.3 要执行的命令和含义:

    命令含义
    第一个命令卸载旧版本在上面呢,这里不好粘贴 shell中见到换行就执行,添加表示当前命令未结束
    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引擎、客户端、容器,需要输入y确认两次
    systemctl start docker 启动docker
    docker -v 查看版本
    docker images 查看使用docker下载的所有镜像
    systemctl enable docker 开机启动docker
    docker pull 软件名:版本 下载镜像
    docker ps 查看docker中正在运行的容器
    docker ps -a 查看docker中所有的容器
    docker run xxx 根据某个镜像创建并启动一个容器,就是安装软件,run一次安一个
    docker start 容器名/id 启动容器
    docker stop 容器名/id 停止容器
    docker restart 容器名/id 重启容器
    docker rm 容器名/id 删除容器,就是卸载软件

    1.4 docker是国外的,默认下载镜像的地址是国外,我们更改为国内镜像。去阿里云获取镜像加速地址,登录阿里云,进入控制台,如下图

    1.5 运行下面四个命令即可

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
     "registry-mirrors": ["https://fs0pkpfq.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    2.Docker内安装MySQL

    在docker下安装一个软件分为以下几步:1.获取镜像版本;2.pull安装;3.run命令启动该镜像的一个容器;4.(可选)exec进入容器查看安装的软件;5.(可选)设置docker启动时就启动、停止、启动容器

    2.1 去docker镜像仓库找到要下载的软件的版本,搜索docker hub进入官网

    2.2 我们下载mysql5.7版本,输入命令

    docker pull mysql:5.7

    2.3 启动一个mysql容器,输入下段代码。如果电脑内自行安装过mysql(不是使用docker),可能出现3306端口被占用的问题,这里把冒号前的3306改成3307等,再粘贴运行,改完再粘。

    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=admin
    -d mysql:5.7

    代码含义:因为docker会为每个软件建立一个独立的运行环境,也就是docker在安装一个软件前,先在自己内部创建一个linux系统,然后在这个linux系统内安装这个软件。

    第一行:启动一个容器,给这个容器命名为mysql,-p端口映射,把容器内的3306端口映射到docker外,映射成3306;

    第2-4行:-v是挂载,可以理解为快捷方式,指的是把docker内的linux内的目录创建一个快捷方式,:前是快捷方式在docker外的位置,:后是docker内的linux内的目录;

    第5行:-e是设置环境变量,这里修改root用户的密码为admin;

    第6行:被启动容器基于mysql:5.7镜像(docker images内的一个)

    注意: pull下来的叫镜像(软件安装包),一个镜像可以启动(run)很多个容器,所以下次使用这个mysql时就使用start和stop来启动和停止mysql容器,如果使用run会新建一个mysql容器。你可以使用rm命令移除一个停止运行的容器。

    2.4 验证docker的独立容器

    查看正在运行的镜像: docker ps

    进入到某个容器内部,也就是docker创建的linux的内部:

    docker exec -it 容器名或id /bin/bash

    在容器内部可以查看mysql安装位置: whereis mysql

    2.5 修改mysql默认编码

    切换到/mydata/mysql/conf目录下,编辑my.cnf,插入如下内容:

    [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.6 设置启动docker时,即运行mysql

    docker update mysql --restart=always

    3 自行安装JDK、Tomcat、Nginx、Redis......

    JDK安装,无需配置环境变量,自动配好的,注意是安装在docker内部的,外部用不了,所以要把项目部署在docker内才能使用docker安装的JDK。

    Tomcat安装完启动之后,W10内的浏览器输入“虚拟机ip:8080”如果能看到页面或者404,表示安装完成。404的原因是webapps下没有ROOT项目,可以自己在docker内的Tomcat内的webapps下新建文件夹ROOT,然后往这个文件夹内复制一个HTML,然后再次访问就不是404而是自己放的页面了。

  • 相关阅读:
    B-线性代数-距离公式汇总
    B-线性代数-范数
    B-线性代数-矩阵转置
    B-概率论-贝叶斯决策
    B-概率论-极大似然估计
    B-概率论-条件概率
    2018.1.7java转型
    追求
    面向心态
    数据类型和type函数
  • 原文地址:https://www.cnblogs.com/xfyuao/p/14816732.html
Copyright © 2011-2022 走看看