VMware17下安装Ubuntu22.04与Docker(附带:1.解决重启后IP重置问题。2.多个虚拟机之间网络通信)

news/2025/2/25 10:01:08

VMware17下安装Ubuntu22.04与Docker

(附带:1.解决重启后IP重置问题。2.多个虚拟机之间网络通信)

文章目录

  • VMware17下安装Ubuntu22.04与Docker
    • 前言
    • 1 Ubuntu22.04 Server下载
    • 2 VMware17设置虚拟机的连接网络
    • 3 安装Ubuntu22.04虚拟机
    • 4 设置root密码(默认未设置)
    • 5 开启SSH和Root账号登录
    • 6 防火墙常用设置
    • 7 设置所在时区
    • 8 Docker安装
    • 9 解决重启Ubuntu22.04后IP地址重置
    • 10 多个虚拟机之间网络通信
      • 10.1 复制虚拟机
      • 10.2 修改虚拟机网络

前言

2024年1月, Red Hat(红帽)公司发布公告称,CentOS 7将在2024年6月30日正式结束支持,生命周期结束后,官方将不在进行维护与支持。换言之如果后续继续使用CentOS系统如果遇到严重漏洞,无法得到官方维护修复,这样系统安全性就无法保证。综上所述,在以后的生产环境中需要寻找稳定可靠的服务器系统,例如开源linux发行版Ubuntu22.04 server,Ubuntu22.04 server发布几年来经过了市场的验证,稳定可靠的同时生态完善,完全可以替代后CentOS7时代的服务器系统。

下图为红帽官网公布的CentOS7维护截止到:2024年6月30日

image-20241029012049314

1 Ubuntu22.04 Server下载

打开Ubuntu官网下载ios镜像:https://cn.ubuntu.com/download/server/step1

image-20241019193501043

找到其他下载,下载22.04版本,24版本由于刚上不久没有经过市场检验可靠性未知,所以暂时不考虑,此处选择成熟且经过市场检验稳定可靠的的22版本。

image-20241019193646469

2 VMware17设置虚拟机的连接网络

打开虚拟机——> 编辑——>虚拟网络配置(以NAT模式为例),根据自己的网络情况进行配置修改

image-20241029095930703

注意此处如果打开编辑页面是灰色的话,可能是win10或者win11下需要管理员权限才能进行网络编辑,点击右下角更改设置

image-20241029100303543

如果NAT模式已经设置过则可以不用新添加网络
注意如对虚拟机网络还不了解,请跟着图片步骤操作添加NAT模式网络!!(此处关系到能否成功连上互联网!)

image-20241029100549654

假设你已经添加了名称为VMnet8(或VMnet2)网络,选择刚刚新加的网络点击NAT设置
作用解释:选择子网 88 网段后,所有使用 NAT 模式的虚拟机将位于 192.168.88.x 局域网中,实现内部互通(如 192.168.88.170 和 192.168.88.171 可互相通信),同时通过宿主机 NAT 转发访问外网。
这种网络配置方式既保证了虚拟机之间的高效协作,又提供了与外部网络的连接能力,非常适合需要多虚拟机协同工作的场景。

image-20240110120115537

image-20240110120230380

根据自己添加的虚拟网卡名进行编辑修改,例如之前我添加的虚拟网卡为VMnet8(之前自己新建的虚拟网络名)。

image-20230723155416740
需在之前设置的虚拟网络同一网段下,例如192.168.88.xxx

image-20240110120515437

3 安装Ubuntu22.04虚拟机

打开vmware17,新建一个虚拟机

image-20241019193045788

选择之前下载的镜像源Ubuntu22.04

image-20241019193107098
在这里插入图片描述

image-20241019193758813

image-20241019193834787

建议系统名+IP名命名方便识别,此处选择本机电脑的安装路径后,点击下一步
在这里插入图片描述

此处硬盘选择40G根据自身需要进行修改,保存文件方式为多文件便于日后复制虚拟机
注意:(如果打算安装东西多的话尽量不要低于35G,不然后期扩展容量很麻烦,切记!!)
在这里插入图片描述
在这里插入图片描述

此处自定义硬件配置,根据本机电脑选择,例如此处我选择运行内存分配6GB
在这里插入图片描述
处理器1,内核2
在这里插入图片描述
网络是适配器选NAT
在这里插入图片描述
配置完毕后,点击完成
在这里插入图片描述

选择第一个进行安装,选中回车进行安装

image-20241019194505913

此处安装选择英文
image-20241019195345535
选择键盘布局为默认,下一步
在这里插入图片描述

空格选择第一项,进行安装(注意:如果选择第二项最小安装将会导致常用命令无效,例如vim编辑器等)

CSDN_1730161462453_edit_1206581043632556
选择第一个设置网卡静态IP地址,回车
在这里插入图片描述
回车选中,ipv4
image-20241019225807630
回车弹出,选择设置ip地址
image-20241019225826520
subnet(子网掩码):192.168.88.0/24(相当于255.255.255.0)
address(IP地址):192.168.88.170,
Gateway(网关):192.168.88.1
Name servers(DNS地址):114.114.114.114(电信常用DNS,根据自己需要修改)

image-20241019230811158

网络代理连接地址,跳过不填
image-20241019195950771

国内镜像源可以选择清华、阿里云、华为云等镜像源,
此处选择华为云镜像源:https://mirrors.huaweicloud.com/ubuntu/
填写完毕后按回车,需要等待验证测试如下通过方可下一步
image-20241019231139881
注意:此处提示Ubuntu最新已经是24.08版本,此处选择第二项不进行更新继续安装!
在这里插入图片描述

分区配置,保存默认即可
image-20241019200743111

继续点击下一步,选择继续

image-20241019200826180
此处提示意思是,如果按上述选择进行下一步安装,则会导致磁盘格式化造成数据丢失,将无法返回上一步,由于我们是新安装的系统不用管,点击继续。
image-20241019200843540

设置名字,服务器名称,登录的用户名和密码等信息。例如此处,名字junliang、服务器名ubuntu、用户名lvdamao,密码自行设置等

image-20241019231344503

跳过Ubuntu Pro的安全更新,默认继续下一步
image-20241019201250223

配置安装openssh-server,这个可以用来进行远程连接,勾选第一项
image-20241019201414137
其他服务安装选择,此处默认不选,下一步
在这里插入图片描述

等待安装完成
image-20241019201439391
安装完毕,弹出重启按钮后,点击重启
image-20241019201628910

此处提示报错,CDROM安装挂载失败不用管,暂时用不到CD挂载,直接回车跳过
image-20241019201804773

重启成功后,输入之前设置的账号密码,成功进入系统image-20241019205620398

4 设置root密码(默认未设置)

使用命令sudo passwd root设置root密码,如下:

image-20241019232715663

使用su root验证是否正常切换到root用户,如下:

image-20241019232749339

5 开启SSH和Root账号登录

设置SSh,通过root账号,编辑ssh服务配置文件,默认情况Ubuntu不允许终端使用root账号ssh链接服务器的

使用vim /etc/ssh/sshd_config命令,修改ssh_config文件中下图中2处位置配置文件信息;

按键盘字母i进入编辑模式,然后找到对应文本进行修改
在这里插入图片描述
在第58行,删除#号,释放代码
在这里插入图片描述
最终修改结果如下2处
ecc55295f43c7f0e851b96f6b6f682d5_644d1b698a2347fab2dac213f159880c
修改完成后按esc退出编辑,然后输入:wq保存并退出
在这里插入图片描述

使用systemctl restart ssh重启ssh服务;

打开xshell工具,通过远程终端ssh进行连接


image-20241019233440325

image-20241019233633030
image-20241019233655046

可以看到已经成功连接到ubuntu

image-20241019233724552

测试对外网络是否连通ping www.baidu.com
image-20241019233925058

6 防火墙常用设置

查看防火墙状态,inactive是关闭,active是开启,如果是开启状态则关闭防火墙

sudo ufw status 

防火墙基本命令:(在测试环境中建议关闭,生产环境不建议关闭防火墙)

sudo ufw enable 开启防火墙

sudo ufw disable 关闭防火墙

7 设置所在时区

设置时区:

timedatectl set-timezone "Asia/Shanghai"  设置系统时间时区为上海
timedatectl set-ntp yes    启用ntp同步网络时间

查看当前系统时间和硬件时间:

date +"%Y-%m-%d %H:%M:%S"  查看系统时间
sudo hwclock --systohc  将系统时间同步到硬件时间
sudo hwclock --show   查看硬件时间

8 Docker安装

更新云镜像索引 apt-get update

image-20241019234752707

打开华为云官网:https://www.huaweicloud.com/

搜索docker

image-20241019234500601

image-20241019234835552

此处需要注册有华为云账号,如果没有复制后面指令执行也可,此处只是演示如何获取指令运行

image-20241019234853645

查看示例文档,可以获取到执行命令,按以下步骤执行
image-20241019235105621
删除已有docker依赖,并重新安装依赖

sudo apt-get remove docker docker-engine docker.io
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

安装Ubuntu的docker秘钥

curl -fsSL https://repo.huaweicloud.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

image-20241019235326578

添加软件仓库

sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://mirrors.huaweicloud.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

image-20241020001902020

image-20241019235420472

sudo apt-get update
sudo apt-get install docker-ce

image-20241020001928855
image-20241020002034965

安装完成后验证docker是否安装成功

#查看Docker版本
sudo docker version

#查看Docker运行状态
sudo systemctl status docker

#自动启动Docker服务
systemctl enable docker

在这里插入图片描述

添加docker镜像源地址

注意:由于国内政策变化,目前大多数docker镜像源已经无法使用,如果需要使用官方镜像源,则需要挂vpn拉取

sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://registry-1.docker.io"
  ]
}
EOF

查看是否配置成功
cat /etc/docker/daemon.json

在这里插入图片描述

重新加载配置和重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

测试docker命令,均正常则安装docker完成。

docker ps 查看docker应用
docker images 查看docker镜像

在这里插入图片描述

9 解决重启Ubuntu22.04后IP地址重置

此处请参考之前我写的另一篇文章
参考文章:Ubuntu Server 22.04.5 LTS重启后IP被重置问题

10 多个虚拟机之间网络通信

在VMware中,多个虚拟机之间进行网络通信的意义在于支持虚拟环境中的资源共享、协作处理和高效管理。通过配置不同的网络模式(如桥接模式、主机模式或自定义网络),虚拟机可以相互通信,实现分布式应用部署、负载均衡、故障转移等功能,从而提升资源利用率和系统灵活性,满足复杂业务需求。这对于开发测试、云计算及数据中心场景尤为重要。

10.1 复制虚拟机

首先需完成标题9,取消重启后覆盖IP,否则复制重启虚拟机后IP会被覆盖。

找到之前安装的虚拟机,选择克隆
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.2 修改虚拟机网络

为了避免IP冲突,先关闭原88.170虚拟机,然后开启88.171
在这里插入图片描述
输入nano /etc/netplan/50-cloud-init.yaml修改IP地址为88.171

在这里插入图片描述
编辑完毕后按ctrl+O,然后按回车进行保存,再按ctrl+x退出

重启服务

sudo cloud-init clean
sudo reboot

同时打开88.170和88.171虚拟机,在171输入ping 192.168.88.170,可以看到虚拟机之间网络已经互通
在这里插入图片描述


http://www.niftyadmin.cn/n/5865355.html

相关文章

SMT贴片代工高效解决方案

内容概要 在现代电子制造领域&#xff0c;SMT贴片代工作为智能制造的关键环节&#xff0c;其技术演进正推动着行业效率的持续跃升。专业代工服务通过集成全流程数字化管理系统&#xff0c;构建起从基板预处理到回流焊接的完整工艺链&#xff0c;其中全自动高速贴片机采用视觉对…

DLP数据防泄漏产品的关键性能指标

DLP数据防泄漏产品的关键性能指标包括以下几个方面&#xff1a; Refer:揭秘数据丢失防护&#xff08;DLP&#xff09;&#xff1a;保护敏感信息的关键_dlp协议-CSDN博客 一、数据识别能力(核心能力) 准确率(Precision rate)&#xff1a; 准确识别敏感数据的能力&#xff0c;…

sysbench压测pgsql数据库 —— 筑梦之路

这里主要使用sysbench工具对Pgsql数据库进行基准测试。 1. 创建数据库和用户名 # 创建用户和数据库CREATE USER sysbench WITH PASSWORD 123456;CREATE DATABASE sysbench owner sysbench;# 给用户授权访问 vim pg_hba.confhost sysbench sysbench 127…

rtpengine build mr12.5.1 镜像

debian 版本 cat Dockerfile: FROM debian:bookworm-20230725 RUN apt-get update && \apt-get dist-upgrade gnupg2 apt-utils lsb-release cmake curl iproute2 ca-certificates gcc g make build-essential libavfilter-dev \libevent-dev libpcap-dev libxmlrpc-…

华山论剑之JAVA中的“方法论”

这里是&#xff1a;钮钴禄.爱因斯晨~ 更多精彩&#xff1a;个人主页 JAVA专栏&#xff1a;Java 热门文章1&#xff1a;赛博算命之梅花易数 热门文章2&#xff1a;赛博算命之周易六十四卦 大佬们互三哦~~互三必回&#xff0c;后台踢踢哦~ 前言 在 Java 编程的广袤世界里&#xf…

前端面试真题 2025最新版

文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性&#xff1a;Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss&#xff0c;有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…

LD_PRELOAD 绕过 disable_function 学习

借助这位师傅的文章来学习通过LD_PRELOAD来绕过disable_function的原理 【PHP绕过】LD_PRELOAD bypass disable_functions_phpid绕过-CSDN博客 感谢这位师傅的贡献 介绍 静态链接&#xff1a; &#xff08;1&#xff09;举个情景来帮助理解&#xff1a; 假设你要搬家&#x…

python中的JSON数据格式

文章目录 什么是json主要功能Python数据和Json数据的相互转化 什么是json JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据。JSON本质上是一个带有特定格式的字符串。 主要功能 json就是一种在各个编程语言中流通的数据格式&#xff0c;负责不同编…