Oracle VM VitualBox、Vagarant安装CentOS 7 和Docker、Redis、MySQL

Oracle VM VitualBox、Vagarant安装CentOS 7 和Docker、Redis、MySQL

Scroll Down

安装 Oracle VM VitualBox 和 Vagrant

  • 下载 Oracle VM VitualBox 并安装
  • 下载 Vagrant 并安装

我发现别人有些文章的关键图片挂掉了,非常影响体验,甚至直接导致接下来的步骤无法进行,虽然我对自己的OSS有长期维护的打算,但是以后谁知道会不会挂掉,所以我决定以后尽量少用图片,关键步骤一律采用文本的形式。

mkdir <folder>

cd  <folder>

vagrant init <image-name>

vagrant up 

vagrant up 这个命令是去仓库拉取镜像然后安装,由于众所周知的网络原因,所以官方仓库根本根本访问不了,于是去查找box,下载之,手动安装,下面以安装centos 7 为例子

中科大源: http://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/

小版本我选了2004_01,复制地址,然后

cd  vagrant/centos7

vagrant init centos/7

vagrant box add \
  http://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box \
  --name centos/7

vagrant up 
PS A:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1608122873296_34651
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Waiting for cleanup before exiting...

出现上面这个说明安装好了,可以愉快的玩耍了

再验证一下,打开终端,执行 vagrant ssh ,这个会将vagrant 作为 username 登录

接下来配置一下虚拟机的网络使之能和宿主机互通。

打开刚才执行 vagrant 命令的目录,我这里是A盘下面的 vagrant

然后,vagrant init 的时候会自动生成一个 Vagrantfile ,这个无后缀的文件

后缀其实只是用来给人类看的,或者方便软件关联用来显示logo,程序真正处理文件的时候,都是根据内容来判断的,如果你愿意的话,可以将.docx文件的后缀去掉,照样可以用 office 打开

将 Vagrantfile 用你喜欢的文本编辑器打开,找到这一行:

   config.vm.network "private_network", ip: "192.168.56.10"

将前面的 # 号删除,表示解开注释,这个 ip 的值,保持和宿主机网段一致,然后虚拟机和宿主机互相 ping 两下,看看是否联通。

注意可能会出现虚拟机捕获鼠标的情况出现,此时摁一下右边的 Ctrl 即可。

点开Oracle VM VitualBox ,里面的 CentOS 默认登录名是 root, 登录密码是vagrant,不过我喜欢直接打开 windows terminal , 进入到虚拟机的目录,然后 vagrant ssh ,直接就登录成功了。

安装 Docker

先把 CentOS 的源换清华源,参考这个 https://mirrors.tuna.tsinghua.edu.cn/help/centos/

执行sudo yum makecache 的时候是失败了,测试了下发现是 DNS 没有配置导致无法解析域名,所以编辑一下 ifcfg-eth1:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1

在最后加一行   DNS1=114.114.114.114

 sudo service network restart
 

再次执行 sudo yum makecache ,成功。

接下进行 Docker 的安装,参考官方文档 https://docs.docker.com/engine/install/centos/

执行 sudo yum install -y yum-utils 时发现报错

GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-7"

ll 一下 /etc/pki/rpm/rpm-gpg 发现并没有 RPM-GPG-KEY-EPEL-7 这个文件,这个应该是用来验证安装包的公钥,然后我就开始绕了弯路,暂且按下不表,且说结果,我找到了这玩意:

于是复制链接,进入 /etc/pki/rpm/rpm-gpg 目录,wget 一下。

或者把刚才 .repo 里的 gpgkey 的路径换成 https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-7 也行。

然后继续 sudo yum install -y yum-utils, Complete!

接下来继续按照 docker 的官方文档执行步骤。

安装完成之后,可以配置镜像加速,我用的是 阿里云 的这个

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

安装 MySQL

一行命令 sudo docker pull mysql:5.7搞定。

运行 MySQL,同时指定目录和端口映射:

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

运行 Redis

同样一行命令 sudo docker pull redis搞定。

运行 Redis:

# 1、2两步必须先执行,否则运行 redis 会报错
 1. mkdir -p /mydata/redis/conf
 
 2. touch /mydata/redis/conf/redis.conf

 3. docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
 -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
 -d redis redis-server /etc/redis/redis.conf

可以改一下 Redis 的配置 redis.conf , 在其中加一行 appendonly yes,开启持久化。

配置 MySQL, Redis 跟随虚拟机自启

sudo docker update mysql --restart=always
sudo docker update redis --restart=always