Windows11专业版使用虚拟化技术安装Linux(CentOS7)

Windows11专业版使用虚拟化技术安装Linux(CentOS7)

1.Windows11版本信息

2.启用wsl2及Hyper-V 相关功能

bash 复制代码
#wsl2
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Windows-Subsystem-Linux","VirtualMachinePlatform","Containers")

#Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V","Microsoft-Windows-Subsystem-Linux","VirtualMachinePlatform","Containers") -All

3.虚拟化技术之WSL2

3.1Win11命令行wsl命令无法使用

WSL出现问题,提示"系统找不到相关路径"或者"系统找不到指定的文件"

3.2 CentOS7-下载

Windos11下通过WSL安装centos7系统

记录:wsl2 安装 centOS7 一些问题解决 并 使用shell 工具连接

3.3 CentOS7-安装

  • 1、解压安装包CentOS7.zip至任意路径
  • 2、双击运行CentOS7.exe可执行文件
  • 3、安装完成后检查Windows下是否存在CentOS7系统文件
  • 4、进入CentOS7系统,输入任意命令检查系统是否正常

3.4DockerDesktop版本信息

窗户 |Docker 文档 下载地址1 下载地址2

3.5wls相关命令

bash 复制代码
#查看WSL版本信息
wsl --version
#查看WSL状态
wsl --status 
#列出已安装的 Linux 发行版
wsl -l -v
#终止特定实例(如果需要终止该子系统)
wsl --terminate CentOS7
#重启wsl服务
wsl --shutdown 
#设置默认 Linux 发行版(若想将CentOS7设为默认)
wsl --set-default CentOS7
#将WSL版本设置为1或2
wsl --set-version
#设置默认 WSL 版本为2
wsl --set-default-version 2
#运行特定的Linux发行版
wsl --distribution --user 
#以特定用户的身份运行
wsl -u , wsl --user 
#更改发行版的默认用户
wsl config --default-user 
#注销或卸载 Linux 发行版
wsl --unregister CentOS7
cd D:\Environment\CentOS7
Remove-Item ext4.vhdx
wsl --list --all
#进入指定的子系统
wsl -d CentOS7
#更新WSL至最新版
wsl --update
#启用 systemd 管理 Linux 服务
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
exit;
wsl --shutdown 
wsl -d CentOS7

4.虚拟化技术之Hyper-V

4.1Hyper-V网络配置

4.2CentOS7-下载

CentOS 7镜像下载本文使用的版本是CentOS-7-x86_64-DVD-1810-7.6.iso

4.3CentOS7-安装

hyper-v安装linux系统,Hyper-V虚拟机上安装一个图形界面的Linux系统

4.4CentOS7网络配置

bash 复制代码
#查看宿主机Win11的ip地址
ipconfig
bash 复制代码
cd /etc/sysconfig/network-scripts/
bash 复制代码
#手动编辑ifcfg-eth0文件
vi ifcfg-eth0
#或用以下内容直接替换
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
NETMASK=255.255.255.0
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=0fad1e43-a8f0-4534-aca5-626e713336bf
DEVICE=eth0
ONBOOT=yes
DNS1=8.8.8.8
IPADDR=192.168.1.110
PREFIX=24
GATEWAY=192.168.1.1
LAST_CONNECT=1384407977

检查网络是否已经连通

bash 复制代码
ping www.baidu.com

5.yum命令使用异常

CentOS7报错解决:Cannot find a valid baseurl for repo: base/7/x86_64

bash 复制代码
cd /etc/yum.repos.d
sed -i 's/mirrorlist/#mirrorlist/g' CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' CentOS-*
yum clean all && yum makecache
yum -y update
yum -y install gcc gcc-c++ make wget
yum -y install openssl* openssh*
yum -y install vim tar net-tools ncurses

6.ssh服务及防火墙相关设置

bash 复制代码
systemctl enable sshd.service 
systemctl start sshd.service  

rpm -qa|grep firewalld;rpm -qa|grep firewall-config
yum -y install firewalld firewall-config
rpm -qi firewalld firewall-config

systemctl enable firewalld.service                   # 重启防火墙开机自启动
systemctl restart firewalld.service                  # 重启防火墙服务
firewall-cmd --version                               # 查看防火墙版本
firewall-cmd --list-all       					     # 查看已开放的端口
firewall-cmd --permanent --zone=public --add-port=22/tcp    # 开通sftp服务22默认端口
firewall-cmd --reload                                       # 刷新防火墙,重新载入
# 关闭Selinux策略
setsebool -P ftpd_full_access on
sed -i s#enforcing#disabled#g /etc/sysconfig/selinux
setenforce 0 && getenforce
getenforce

7.搭建开发环境

7.1安装docker

Docker安装篇(CentOS7安装)

Docker入门

bash 复制代码
cat /etc/redhat-release

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

yum -y install gcc gcc-c++
yum -y install yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast

yum install docker-ce docker-ce-cli containerd.io

systemctl start docker
docker version

配置docker镜像源

json 复制代码
mkdir -p /etc/docker
vi /etc/docker/daemon.json
//daemon.jsonwe文件内容如下
{
  "registry-mirrors": [
    "https://cr.laoyou.ip-ddns.com",
    "https://image.cloudlayer.icu",
    "https://hub.fast360.xyz",
    "https://docker-0.unsee.tech",
    "https://docker-cf.registry.cyou",
    "https://docker.1panel.live",
    "https://pwhs9o2u.mirror.aliyuncs.com"
  ]
}

chmod 777 /etc/docker/daemon.json
systemctl daemon-reload
systemctl restart docker

7.2docker常用命令

bash 复制代码
systemctl start docker
systemctl status docker
systemctl enable docker
docker network inspect bridge

docker exec -it mysql ping 192.168.1.110

#windows使用 findstr ,linux使用 grep
docker inspect oralce11g | grep IPAddress

netstat -tanlp | grep 3306

docker port mysql

netstat -ano | findstr :3306

docker exec -it mysql bash

docker system prune -a 

docker ps -a

#更新容器至自启动状态
docker update 0af13655f6d6 --restart=always

7.3安装mysql数据库

bash 复制代码
#拉取镜像
docker pull mysql:8.0.21
#查看镜像
docker images
#运行镜像,启用mysql实例
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mc123456 --restart=always mysql:8.0.21

docker update 0af13655f6d6 --restart=always

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload 

docker ps -all
docker rm 容器ID

7.4安装redis数据库

bash 复制代码
docker search redis
docker pull redis 
docker run -p 6379:6379 --name redis -d --restart=always redis 

7.5安装oracle数据库

bash 复制代码
docker pull iatebes/oracle_11g

docker run -d --privileged=true --name oralce11g -p 1521:1521 -e ORACLE_SID=orcl -e ORACLE_PWD=oracle -e ENABLE_ARCHIVELOG=true --restart=always iatebes/oracle_11g

docker network inspect bridge
docker exec -it oralce11g ping 172.17.0.2
docker inspect oralce11g | findstr IPAddress
docker port mysql

docker exec -it oralce11g bash

su - oracle
sqlplus /nolog
conn / as sysdba
ALTER USER system IDENTIFIED BY oracle;
GRANT SYSDBA TO system;
exit;

su - oracle
sqlplus / as sysdba
conn system/root as sysdba;

# 查询实例
select instance_name from v$instance;
show parameter name
# 查询数据库
select name from v$datafile;
# 创建表空间
create tablespace CK_BUS_TABLE_SPACE datafile '/opt/oracle/app/oradata/orcl/CK_BUS_TABLE_SPACE.dbf' size 200m autoextend on extent management local segment space management auto;
# 查询数据库
select name from v$datafile;
# 创建用户并指定表空间
# CREATE USER 用户 IDENTIFIED BY 用户密码 DEFAULT TABLESPACE NOTIFYDB;
CREATE USER CK_BUS IDENTIFIED BY ck_bus DEFAULT TABLESPACE CK_BUS_TABLE_SPACE;
# 给用户授予dba的权限
grant SYSDBA to CK_BUS; 
# 登录账号
conn CK_BUS/ck_bus as sysdba;
select * from dual;
exit;

ORA-01950: no privileges on tablespace 'USERS' 处理

sql 复制代码
--检查当前配额
SELECT tablespace_name, max_bytes FROM dba_ts_quotas WHERE username = 'CK_BUS';

-- 给某个用户在 CK_BUS_TABLE_SPACE 表空间上无限制使用权限
ALTER USER CK_BUS QUOTA UNLIMITED ON CK_BUS_TABLE_SPACE;

-- 或者分配固定配额,比如 1000M
ALTER USER CK_BUS QUOTA 1000M ON CK_BUS_TABLE_SPACE;

--ORA-01045: user lacks CREATE SESSION privilege; logon denied
grant create session,resource to CK_BUS;

7.6安装Java环境

Docker 安装JDK1.8

bash 复制代码
docker pull java:8

docker run -d -it --name java8 --restart=always java:8

docker exec -it java8 /bin/bash

java -version

7.7部署Java项目

bash 复制代码
#编写Dockerfile文件
#导入java项目依赖
FROM java:8
#暴露java项目的端口
EXPOSE 8099
# 将本地的 JAR 文件复制到容器中
COPY ck-bus-admin-1.0.0-BOOT.jar /app.jar
# 运行 JAR 文件
CMD ["java", "-jar", "/app.jar"]

#将Dockerfile文件和java项目的jar包上传至linux的同一级目录
#执行镜像构建命令
docker build -t ck_bus .
#查看java项目镜像构建情况
docker images
#启动java项目
docker run -d --name ck_bus-test -p 8099:8099 --restart=always ck_bus 
#查看java项目执行日志
docker logs ck_bus-test
curl 192.168.1.110:8090

#进入java项目容器之内
docker exec -it ck_bus-test bash

#查看docker容器执行情况
docker ps -a
#删除java项目步骤,停止服务,删除容器,删除镜像
docker stop ck_bus-test 
docker rm ck_bus-test
docker rmi ck_bus

8.Windows安装oracle轻量连接

无需安装Oracle客户端,轻松实现ODBC链接Oracle数据库

通过ODBC连接Oracle数据库

官网下载

下载Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC 安全更新

删除未使用的驱动

注册表路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

properties 复制代码
#新建文件夹
D:\ProgramFiles\Oracle\instantclient_11_2\network\ADMIN
#新建文件 tnsnames.ora 并添加如下内容
# tnsnames.ora Network Configuration File: D:\ProgramFiles\Oracle\instantclient_11_2\network\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
 
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))
 
 
ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
 
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
  
#新建文件 listener.ora 并添加如下内容
# listener.ora Network Configuration File: D:\ProgramFiles\Oracle\instantclient_11_2\network\ADMIN\listener.ora
# Generated by Oracle configuration tools.
 
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\ProgramFiles\Oracle\instantclient_11_2)
      (PROGRAM = extproc)
    )
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

9.Windows跟踪命令提示符cmd的执行情况

bash 复制代码
SxsTrace Trace -logfile:d:\SxsTrace.etl

SxsTrace Parse -logfile:d:\SxsTrace.etl -outfile:d:\SxsTrace.txt
相关推荐
枳实-叶2 小时前
【Linux驱动开发】第6天:互斥锁mutex/自旋锁spinlock+驱动全流程+应用测试程序
linux·驱动开发
pengyi8710152 小时前
共享IP全面优缺点解析,适合什么人群使用?
linux·运维·服务器·网络·tcp/ip
wo3258661452 小时前
国产信创海光服务、兆芯服务器,搭配板载国产千兆网卡网讯WX1860A2、WX1860A4网卡驱动安装方法
运维·服务器
IpdataCloud2 小时前
IPv6时代,IP归属地查询服务精准度面临哪些挑战?实测对比+提升方案
运维·服务器·网络
Little At Air2 小时前
LinuxOS阻塞队列模型(单生产者单消费者)
linux·数据结构·c++
南境十里·墨染春水2 小时前
linux学习进展 git详解
linux·git·学习
念恒123063 小时前
基础IO(一切皆文件)
linux·c语言·c++·算法
d111111111d3 小时前
MQTT+STM32+云平台+AT命令的编写
服务器·笔记·stm32·单片机·嵌入式硬件·算法
上海云盾-小余3 小时前
服务器异常流量排查:攻击识别与快速限流处置指南
运维·服务器·网络