一、準備所需軟體
作業系統:ubuntu-20.04.2-live-server-amd64.iso (可從國内鏡像網站mirrors.163.com下載下傳)
虛拟軟體:VirtualBox-6.1.20-143896-Win.exe VBoxGuestAdditions_6.1.20.iso
(可從官網download.virtualbox.org/virtualbox/下載下傳)
終端軟體:MobaXterm_Portable_v21.1.zip MobaXterm_Installer_v21.1.zip
(可從官網mobaxterm.mobatek.net下載下傳MobaXterm Home版本)
docker安裝包:containerd.io_1.4.6-1_amd64.deb
docker-ce_20.10.7~3-0~ubuntu-focal_amd64.deb
docker-ce-cli_20.10.7~3-0~ubuntu-focal_amd64.deb
(可從國内鏡像網站mirrors.163.com下載下傳)
docker-compose:docker-compose-Linux-x86_64 (版本1.29.2)
(從github上下載下傳最新版本1.29.2,位址:https://github.com/docker/compose/releases)
注意:我用家裡的移動寬帶上網始終打不開github網站,後用手機開熱點,電腦連上手機熱點,輕松下載下傳了下來。
二、建立虛拟機svr00
虛拟機軟體VirtualBox安裝過程此處不較長的描述,直接輕按兩下安裝檔案,一路預設設定即可。如過遇到問題,可自行百度解決。
1 建立虛拟電腦
在VirtualBox界面工具欄上,點選【建立】圖示,在彈出視窗【建立虛拟電腦】中設定如下圖2.1-1,點選【建立】,彈出視窗【建立虛拟硬碟】,設定如下圖2.1-2,點選【建立】,即可完成虛拟電腦的建立。
圖2.1-1 建立虛拟電腦設定
圖2.1-2 建立虛拟硬碟設定
圖2.1-3 建立虛拟硬碟成功後的參數界面
2 配置虛拟電腦
1)設定CPU數量
【系統】【處理器】【處理器數量】設定為2
圖2.2.1 配置虛拟電腦的CPU數量
2)設定虛拟CD光牒ubuntu-20.04.2-live-server-amd64.iso
【存儲】【存儲媒體】【控制器:SATA】右側圖示【添加虛拟光驅】,
在彈出的【虛拟CD光牒選擇】視窗中,點選【注冊】圖示,指定ubuntu-20.04.2-live-server-amd64.iso檔案,如圖2.2.2-3 所示,點選【打開】,注冊成功,如圖2.2.2-4所示。
選中清單中的ubuntu-20.04.2-live-server-amd64.iso,點選【選擇】,成功後如圖2.2.2-5所示。
點選【OK】
圖2.2.2-1 存儲設定界面
圖2.2.2-2 虛拟CD光牒選擇界面
圖2.2.2-3 虛拟CD光牒檔案注冊界面
圖2.2.2-4 虛拟CD光牒檔案注冊成功界面
圖2.2.2-5 虛拟CD光牒檔案設定成功界面
注意:記得将【存儲媒體】中的【控制器:IDE】删除掉。不然,在後面安裝VirtualBox附件時,需要執行“sudo mount /dev/sr1 /mnt”,因為,/dev/cdrom指向的是/dev/sr0,而此時,sr0為【控制器:IDE】裝置,這個裝置裡沒有CD光牒檔案。
3)設定橋接網絡
【網絡】【網卡1】【連接配接方式】選擇:橋接網卡,如圖2.2.3-1所示。
點選【OK】
圖2.2.3-1 網絡設定界面
4)設定共享檔案夾
【共享檔案夾】清單右側【添加共享檔案夾】圖示,在彈出的視窗中,指定共享檔案夾路徑,如圖2.2.4-1所示。點選【OK】,成功後如圖2.2.4-2所示。
點選【OK】
圖2.2.4-1 添加共享檔案夾界面
圖2.2.4-2 共享檔案夾設定界面
3 安裝作業系統
設定完成後,即可啟動虛拟電腦,進行作業系統安裝。
點選工具欄中【啟動】圖示,啟動虛拟電腦,并加載虛拟CD光牒ubuntu-20.04.2-live-server-amd64.iso
Ubuntu伺服器作業系統的安裝過程,此處不做詳述,有問題可自行百度查找解決方法。
圖2.3-1 設定完成後的參數界面
圖2.3-2 系統安裝完成後的啟動界面
4 安裝VirtualBox附件VBoxGuestAdditions_6.1.20.iso
1)添加虛拟CD光牒檔案VBoxGuestAdditions_6.1.20.iso
先要關閉虛拟電腦ub2004-svr00。
跟添加虛拟CD光牒ubuntu-20.04.2-live-server-amd64.iso一樣,在【存儲】設定界面裡,将VBoxGuestAdditions_6.1.20.iso添加進去,成功後,如圖2.4.1-1所示。
點選【OK】
圖2.4.1-1 設定虛拟CD光牒檔案成功界面
2)在系統Ubuntu中執行安裝指令
啟動虛拟電腦ub2004-svr00。
挂載光驅裝置到/mnt路徑上。
$ sudo mount /dev/cdrom /mnt
$ ls /mnt
如果裡面沒有檔案,可嘗試執行“sudo mount /dev/sr1 /mnt”指令。
加載成功時,其檔案如圖2.4.2-1所示:
圖2.4.2-1 VirtualBox附件CD光牒加載成功後的檔案
執行安裝指令VBoxLinuxAdditions.run
$ sudo ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 6.1.20 Guest Additions for Linux........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules. This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel 5.4.0-74-generic.
This system is currently not set up to build kernel modules.
Please install the gcc make perl packages from your distribution.
VirtualBox Guest Additions: Running kernel modules will not be replaced until
the system is restarted
提示:缺少gcc make perl軟體包!
安裝gcc make perl軟體包
$ sudo apt-get update
$ sudo apt-get install make gcc perl
安裝成功後重新執行VBoxLinuxAdditions.run:
$ sudo ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 6.1.20 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 6.1.20 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules. This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel 5.4.0-74-generic.
update-initramfs: Generating /boot/initrd.img-5.4.0-74-generic
VirtualBox Guest Additions: Running kernel modules will not be replaced until
the system is restarted
VirtualBox附件安裝成功,重新開機虛拟電腦ub2004-svr00:
$ sudo reboot
啟動成功後,登入虛拟電腦ub2004-svr00,檢視共享檔案夾是否自動挂載好:
$ mount
vmshare2021 on /media/sf_vmshare2021 type vboxsf (rw,nodev,relatime,iocharset=utf8,uid=0,gid=998,dmode=0770,fmode=0770,tag=VBoxAutomounter)
$ ls -l /media/sf_vmshare2021
total 4
drwxrwx--- 1 root vboxsf 4096 Jun 14 00:26 docker20210613-ub20.04
注意:此處需要将使用者添加進vboxsf組!
在virtualbox中設定共享檔案夾後,共享檔案夾的所有者是root,所屬的組是vboxsf。使用者登入是沒有權限通路該檔案夾的。是以,需要将使用者添加進vboxsf組中,以獲得通路權限。
指令格式:sudo usermod -aG vboxsf <username>
$ cat /etc/group
hexx:x:1000:
vboxsf:x:998:
$ sudo usermod -aG vboxsf hexx
$ cat /etc/group
hexx:x:1000:
vboxsf:x:998:hexx
重新開機一下即可生效。
5 安裝docker和docker-compose
$ cd /media/sf_vmshare2021/docker20210613-ub20.04/
[email protected]:/media/sf_vmshare2021/docker20210613-ub20.04$ ls
compose-1.29.2
containerd.io_1.4.6-1_amd64.deb
docker-ce_20.10.7_3-0_ubuntu-focal_amd64.deb
docker-ce-cli_20.10.7_3-0_ubuntu-focal_amd64.deb
docker-ce-rootless-extras_20.10.7_3-0_ubuntu-focal_amd64.deb
docker-compose-Linux-x86_64-v1.29.2
docker-scan-plugin_0.8.0_ubuntu-focal_amd64.deb
$ sudo dpkg -i containerd.io_1.4.6-1_amd64.deb docker-ce_20.10.7_3-0_ubuntu-focal_amd64.deb docker-ce-cli_20.10.7_3-0_ubuntu-focal_amd64.deb
Selecting previously unselected package containerd.io.
(Reading database ... 75625 files and directories currently installed.)
Preparing to unpack containerd.io_1.4.6-1_amd64.deb ...
Unpacking containerd.io (1.4.6-1) ...
Selecting previously unselected package docker-ce.
Preparing to unpack docker-ce_20.10.7_3-0_ubuntu-focal_amd64.deb ...
Unpacking docker-ce (5:20.10.7~3-0~ubuntu-focal) ...
Selecting previously unselected package docker-ce-cli.
Preparing to unpack docker-ce-cli_20.10.7_3-0_ubuntu-focal_amd64.deb ...
Unpacking docker-ce-cli (5:20.10.7~3-0~ubuntu-focal) ...
Setting up containerd.io (1.4.6-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
Setting up docker-ce-cli (5:20.10.7~3-0~ubuntu-focal) ...
Setting up docker-ce (5:20.10.7~3-0~ubuntu-focal) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.4) ...
$ sudo docker version
Client: Docker Engine - Community
Version: 20.10.7
API version: 1.41
Go version: go1.13.15
Git commit: f0df350
Built: Wed Jun 2 11:56:38 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.7
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: b0f5bc3
Built: Wed Jun 2 11:54:50 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.6
GitCommit: d71fcd7d8303cbf684402823e425e9dd2e99285d
runc:
Version: 1.0.0-rc95
GitCommit: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
docker-init:
Version: 0.19.0
GitCommit: de40ad0
$ sudo cp docker-compose-Linux-x86_64-v1.29.2 /usr/bin/docker-compose
$ ll `which docker-compose`
-rwxr-xr-x 1 root root 12737304 Jun 14 00:32 /usr/bin/docker-compose*
$ sudo docker-compose version
docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
6 設定IP位址
$ sudo vim /etc/netplan/00-installer-config.yaml
network:
ethernets:
enp0s3:
#dhcp4: true
dhcp4: no
dhcp6: no
addresses: [192.168.1.200/24]
gateway4: 192.168.1.1
version: 2
$ sudo netplan apply
三、複制虛拟電腦svr00為svr01
關閉虛拟電腦ub2004-svr00
1、複制虛拟電腦檔案夾
1)将ub2004-svr00檔案夾複制成ub2004-svr01檔案夾
2)将ub2004-svr01檔案夾中的
ub2004-svr00.vmdk 改名為 ub2004-svr01.vmdk
ub2004-svr00.vbox 改名為 ub2004-svr01.vbox
2、更改ub2004-svr01.vmdk的UUID
1)使用VBoxManage.exe internalcommands sethduuid重新設定vmdk的UUID
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage.exe internalcommands sethduuid D:\vm2021\ub2004-svr02\ub2004-svr01.vmdk
UUID changed to: 94e78577-c743-4186-aad2-499c23bbda73
2)修改ub2004-svr01.vbox檔案中跟vmdk有關的uuid和location
<MediaRegistry>
<HardDisks>
<HardDisk uuid="{94e78577-c743-4186-aad2-499c23bbda73}" location="ub2004-svr01.vmdk" format="VMDK" type="Normal"/>
</HardDisks>
</MediaRegistry>
<StorageController name="SATA" type="AHCI" PortCount="3" useHostIOCache="false" Bootable="true" IDE0MasterEmulationPort="0" IDE0SlaveEmulationPort="1" IDE1MasterEmulationPort="2" IDE1SlaveEmulationPort="3">
<AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
<Image uuid="{94e78577-c743-4186-aad2-499c23bbda73}"/>
</AttachedDevice>
</StorageController>
<SharedFolders>
<SharedFolder name="vmshare2021" hostPath="D:\vm2021\vmshare2021" writable="true" autoMount="true"/>
</SharedFolders>
3、更改虛拟機的UUID
1)建立一個虛拟機temp,獲得其vbox檔案中的Machine标簽中的uuid
使用vbox建立一個虛拟電腦,名稱任意,【類型】為Linux,【版本】為Ubuntu (64-bit),【虛拟硬碟】選不添加虛拟硬碟,建立即可。
然後打開其vbox檔案,将其Machine标簽中的uuid值拷貝出來用于更改拷貝虛拟機的vbox檔案中Machine标簽的uuid。
然後删除建立的虛拟電腦。
2)修改ub2004-svr01.vbox檔案中Machine标簽的uuid
<Machine uuid="{e728022c-c7e0-43f2-97e8-34cb70788087}" name="ub2004-svr01" OSType="Ubuntu_64" snapshotFolder="Snapshots" lastStateChange="2021-06-13T16:07:51Z">
注意:将【name】修改為ub2004-svr01
4、輕按兩下ub2004-svr01.vbox檔案,即可在VirtualBox6中打開。
5、啟動成功!
6、修改系統IP
$ sudo vim /etc/netplan/00-installer-config.yaml
network:
ethernets:
enp0s3:
#dhcp4: true
dhcp4: no
dhcp6: no
addresses: [192.168.1.201/24]
gateway4: 192.168.1.1
version: 2
$ sudo netplan apply
7、修改系統主機名
1)編輯/etc/cloud/cloud.cfg
$ sudo vim /etc/cloud/cloud.cfg
# This will cause the set+update hostname module to not operate (if true)
#preserve_hostname: false
preserve_hostname: true
2)編輯/etc/hosts
$ sudo vim /etc/hosts
127.0.1.1 svr01
3)設定主機名
$ sudo hostnamectl set-hostname svr01
4)重新虛拟電腦,使之生效
$ sudo reboot
四、複制虛拟電腦svr00為svr02
重複第三章中的步驟,複制出虛拟電腦ub2004-svr02,并将其IP設定為192.168.1.202,主機名設定為svr02.
五、複制虛拟電腦svr00為svr03
重複第三章中的步驟,複制出虛拟電腦ub2004-svr03,并将其IP設定為192.168.1.203,主機名設定為svr03.
六、總結
圖6-1 建立的虛拟電腦的檔案目錄
圖6-2 建立的虛拟電腦在VirtualBox中的界面