1.安装VirtualBox
2.安装Vagrant
3.构建ubuntu环境
3.1 构建环境
官方镜像
可以在上面的网址查看自己需要的镜像,但是vagrant默认下载box的方式很慢,所以推荐使用国内的镜像。
在自己电脑上新建一个目录,这个目录会存放一个虚拟机环境,比如 E:\vagrants\ubuntu-focal
,通过CMD
进入到该目录,执行以下命令
vagrant init ubuntu-focal http://mirrors.ustc.edu.cn/ubuntu-cloud-images/focal/current/focal-server-cloudimg-amd64-vagrant.box
命令执行之后,可以看到E:\vagrants\ubuntu-focal\
目录下多了一个文件Vagrantfile
。
在CMD
中执行命令ipconfig
,找到VirtualBox Host-Only Network
对应的IPv4 地址,我这里的地址是192.168.56.1,如图:

使用编辑器编辑
Vagrantfile
,修改config.vm.network
的值,这个值就是虚拟机在局域网的网址,建议修改成跟VirtualBox同一网段,即前三个数字跟前面截图中的前三个数字相同,我这里就都是192.168.56,每个虚拟机的IP都要不一样。
config.vm.network "private_network", ip: "192.168.56.2"
接下来启动并连接到虚拟机,进行一些配置
# 启动虚拟机
vagrant up
# 连接到虚拟机
vagrant ssh
虚拟机默认是不允许使用密码登录的,只能使用私钥连接;同时也不允许root用户登录。下面修改成可以使用root用户输入密码登录。
# 切换到root用户
sudo -s
# 修改root用户密码
passwd
# 修改配置
vi /etc/ssh/sshd_config
# 以下两项修改成yes,然后保存
PasswordAuthentication yes
PermitRootLogin yes
# 重启sshd服务
service sshd restart
# 退出虚拟机
exit
# 使用root用户登录
ssh root@192.168.56.2
接下来就可以使用密码登录了,也可以通过root用户登录。
如果不愿意修改,秘钥的地址是E:\vagrants\ubuntu-focal\.vagrant\machines\default\virtualbox\private_key
,可以在XShell里导入这个秘钥。
3.2 ubuntu设置
下面进行ubuntu的一些设置,默认使用root用户登录,如果使用vagrant用户,就在所有命令前面加上sudo
# 先备份原来的源列表文件
mv /etc/apt/sources.list /etc/apt/sourses.list.backup
# 写入阿里源地址
tee /etc/apt/sources.list <<-'EOF'
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF
# 更新软件列表
apt update
# 更新软件(把已安装的软件与刚刷新的软件列表中的版本进行对比,如果发现已安装的软件版本太低,就会提示更新)
apt upgrade
# 安装网络相关工具
apt install net-tools
# 查看当前网络
$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::e2:98ff:fe2d:e4ba prefixlen 64 scopeid 0x20<link>
ether 02:e2:98:2d:e4:ba txqueuelen 1000 (Ethernet)
RX packets 796 bytes 94203 (94.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 575 bytes 104880 (104.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.2 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::a00:27ff:fe0a:698e prefixlen 64 scopeid 0x20<link>
ether 08:00:27:0a:69:8e txqueuelen 1000 (Ethernet)
RX packets 60 bytes 6005 (6.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 76 bytes 9825 (9.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 重启网卡,这里的enpos8其实是上一个命令结果中inet为你配置的IP的网卡名称
sudo ip link set enp0s8 down
sudo ip link set enp0s8 up
# 安装unzip
apt install unzip
# 查看防火墙状态
ufw status
# 启用防火墙
ufw enable
# 禁用防火墙
ufw disable
3.3安装JDK
下载地址
下载Linux x64 Compressed Archive
# 新建目录
mkdir -p /usr/lib/jvm/
# 将下载的文件上传到该目录,然后解压
sudo tar -zxvf jdk-8u271-linux-x64.tar.gz
# 删除压缩文件
rm -f jdk-8u271-linux-x64.tar.gz
# 修改环境变量
vi /etc/profile
# 将以下内容添加到文件末尾
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 使修改生效
source /etc/profile
# 查看是否生效,如果出现java版本信息,则代表生效了
java -version
3.4安装zsh与oh-my-zsh
# 先安装zsh
apt install zsh
# 浏览器打开以下网址
https://github.com/ohmyzsh/ohmyzsh/blob/master/tools/install.sh
# 新建文件install.sh,将上面网址的内容粘贴进去
vim install.sh
# 安装oh-my-zsh,安装结束后会询问是否使用zsh作为默认命令shell,选择是
sh install.sh
# zsh不会调用/etc/profile,所以需要配置一下java环境变量,同时修改下主题
vi .zshrc
# 修改主题
ZSH_THEME="steeef"
# 添加环境变量配置到末尾,然后保存
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 使修改生效
source .zshrc
更多zsh和oh-my-zsh的内容自行百度
3.5安装docker
# 移除老版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装前先更新下软件列表啥的
sudo apt-get update
# 安装
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 设置仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 查看docker版本
docker -v
docker使用阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://iagfhra6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.6虚拟机打包复用
我们从网上下载了box之后,可以进行修改,配置成自己喜欢的样子之后,创建一个新的box,之后都以这个新的box为模板创建虚拟机
# 进入路径
E:
cd E:\vagrants\ubuntu-focal
# 停掉虚拟机
vagrant halt
# 打包
vagrant package
# 添加到box列表,这里的ubuntu是box的名称,后面跟着的是box的相对路径,
vagrant box add ubuntu package.box
# 查看当前的box列表
vagrant box list
# 删除本地环境中指定的box
vagrant box remove box-name
# 创建并进入新目录E:\vagrants\ubuntu,使用本地box创建新的虚拟机,下面命令中的的ubuntu就是上面box列表中的名称
vagrant init ubuntu
网友评论