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-下载
记录:wsl2 安装 centOS7 一些问题解决 并 使用shell 工具连接

3.3 CentOS7-安装
- 1、解压安装包CentOS7.zip至任意路径
- 2、双击运行CentOS7.exe可执行文件
- 3、安装完成后检查Windows下是否存在CentOS7系统文件

- 4、进入CentOS7系统,输入任意命令检查系统是否正常


3.4DockerDesktop版本信息

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
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环境
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数据库


下载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

