安装 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