一、准备所需软件

操作系统: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)设置虚拟光盘ubuntu-20.04.2-live-server-amd64.iso

【存储】【存储介质】【控制器:SATA】右侧图标【添加虚拟光驱】,

在弹出的【虚拟光盘选择】窗口中,点击【注册】图标,指定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 虚拟光盘选择界面

图2.2.2-3 虚拟光盘文件注册界面

图2.2.2-4 虚拟光盘文件注册成功界面

图2.2.2-5 虚拟光盘文件设置成功界面

注意:记得将【存储介质】中的【控制器:IDE】删除掉。不然,在后面安装VirtualBox附件时,需要执行“sudo mount /dev/sr1 /mnt”,因为,/dev/cdrom指向的是/dev/sr0,而此时,sr0为【控制器:IDE】设备,这个设备里没有光盘文件。

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 安装操作系统

设置完成后,即可启动虚拟电脑,进行操作系统安装。

点击工具栏中【启动】图标,启动虚拟电脑,并加载虚拟光盘ubuntu-20.04.2-live-server-amd64.iso

Ubuntu服务器操作系统的安装过程,此处不做详述,有问题可自行百度查找解决方法。

图2.3-1 设置完成后的参数界面

图2.3-2 系统安装完成后的启动界面

4 安装VirtualBox附件VBoxGuestAdditions_6.1.20.iso

1)添加虚拟光盘文件VBoxGuestAdditions_6.1.20.iso

先要关闭虚拟电脑ub2004-svr00。

跟添加虚拟光盘ubuntu-20.04.2-live-server-amd64.iso一样,在【存储】设置界面里,将VBoxGuestAdditions_6.1.20.iso添加进去,成功后,如图2.4.1-1所示。

点击【OK】

图2.4.1-1 设置虚拟光盘文件成功界面

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附件光盘加载成功后的文件

执行安装命令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/
hexx@svr00:/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中的界面

swarm集群实践(一):搭建环境相关推荐

  1. 第20 章 Docker Swarm 集群实践

    Docker Swarm 集群实践 文章目录 Docker Swarm 集群实践 **Swarm介绍** **Swarm 特点** **Swarm架构** **Swarm关键概念** 1)Swarm ...

  2. swarm mysql集群_Docker Swarm集群搭建教程

    接下来通过实例演示一下如何使用 Swarm 来创建安全的集群. 实例中包含 3 个管理节点和 3 个工作节点,如下图所示,可以根据需要自行调整管理节点和工作节点的数量.名称和 IP. 每个节点都需要安 ...

  3. 正式环境docker部署hyperf_应用部署 - Docker Swarm 集群搭建 - 《Hyperf v1.1.1 开发文档》 - 书栈网 · BookStack...

    Docker Swarm 集群搭建 现阶段,Docker容器技术已经相当成熟,就算是中小型公司也可以基于 Gitlab.Aliyun镜像服务.Docker Swarm 轻松搭建自己的 Docker集群 ...

  4. 【Docker之Swarm详细讲解Swarm集群搭建管理节点工作节点Raft一致性协议overlay网络Docker结合Swarm部署WordPress个人博客实战】

    一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...

  5. Docker Swarm集群与Kubernetes的搭建与试用

    一.Docker Swarm集群的环境搭建与试用 Docker Swarm 搭建 1. OS设置 [root@vm1 ~]# ip -br a | grep 0s8 | awk '{print $3} ...

  6. Docker——阿里云搭建Docker Swarm集群

    阿里云搭建Docker Swarm集群 Docker Swarm概念 环境部署 Swarm集群搭建 安装Docker 配置阿里云镜像加速 搭建集群 Raft一致性算法 Swarm集群弹性创建服务(扩缩 ...

  7. 【docker的那些事】搭建Swarm集群

    前言 前面我们对docker compose进行了介绍和使用,然而docker compose比较适用于单机的环境下,对于多机的环境下docker也提供了对应的能力,首先我们得准备三台服务器,任意三台 ...

  8. docker swarm集群搭建及使用Portainer、shipyard

    一.规划 1.swarm01作为manager节点,swarm02和swarm03作为worker节点. # cat /etc/hosts 127.0.0.1 localhost 192.168.13 ...

  9. 持续集成docker—第三篇(docker swarm集群搭建)

    一.规划 1.net-master作为manager节点,net-salve作为worker节点. cat >>/etc/hosts<<EOF 47.96.65.70 yund ...

最新文章

  1. 破玩意 | 多线程 +1 的最快操作
  2. python判断数据类型type_Python 判断数据类型有type和isinstance
  3. redis面试问题(一)
  4. 通信中的频谱效率与能量效率
  5. ELECTRA模型精讲
  6. 金字塔原理只需读前几页
  7. java实现红包要多少钱_Java实现抢红包功能
  8. extended-insert对mysqldump及导入性能的影响
  9. html 响应式 meta,HTML - 移动端 meta viewport
  10. 前端项目开发总结:电商后台管理系统
  11. 基于IIS Live Smooth Streaming技术流媒体直播系统
  12. 1195 口袋的天空
  13. Excel - 字符串处理函数:LEFT, RIGHT, MID, LEN 和 FIND
  14. C语言将CSR存储模式转为coo,spmv_csr 稀疏矩阵的DIA/ELLPACK/COO/CSR/HYB表示形式 - 下载 - 搜珍网...
  15. linux给文件夹加密码,如何使用linux命令给文件上锁?linux命令文件加密方法
  16. 数据中心电气设计怎么做?丨规范、负荷计算、设备选型、微模块/液冷机房…...
  17. ESP32 PM2.5测试
  18. C++添加防火墙例外——检测目标程序不在例外列表时才进行添加,防止重复添加
  19. 【原创】5.4青年有感
  20. varnish 4.0 官方文档翻译9-用户手册- 向Vanish下发指令

热门文章

  1. 那么选什么样的培训机构呢?哪个网络安全培训机构好一些?
  2. python查询链家 成都市高新区楼盘信息
  3. Android 字体粗细的设置
  4. Ubuntu图形界面打不开解决方法
  5. 缺水危机影响芯片供应,台积电启动供水计划
  6. 【HP Cloud Recovery+暗影精灵4】 换固态+恢复惠普原厂系统
  7. 关于肛肠疾病的误区,廊坊金盾告诉你
  8. Java 使用 FTP 实现大文件上传下载
  9. Notes(v070802)R6本地邮箱模版设置
  10. 数据库 SQL基本增删改查语句