一、win12网页版介绍


1.1 Windows 12网页版是2023年8月一名初三学生基于win11网页版的基础上以前端搭建的win12网页版(这初三的??会不会太离谱了点)。这个win12网页版,整体的ui和效果都做的很美观和流畅丝滑,功能上还是算是多的,相对于其他的网页版来说。看了下代码,是纯前端的hc+js做出来的,没有后台接口的。但是不得不说,这对于初三的学生来说相当厉害了。


1.2 这个开源项目在github上。

github地址 :https://github.com/tjy-gitnub/win12



二、本次实践介绍

1. 本次实践简介


本次实践部署环境为个人测试环境,先win12的源代码在githubfast拉下来,另外已经百度云存了一份,可以直接下载。


拉取的命令:git clone https://githubfast.com/tjy-gitnub/win12.git

百度云:https://pan.baidu.com/s/1GBG_Kne8EMClJlggTaiC1g 提取码: jsgq

2. 本地环境规划

本次实践环境规划:docker快速拉取httpd,然后后台启动httpd,数据持久化到你的项目挂载路径。

启动镜像后的名字

IP地址

容器镜像版本

操作系统版本

httpd

192.168.20.8

latest

ubuntu 22.04

三、检查本地Docker环境

检查本地Docker版本

检查Docker版本:docker version
root@WellDone:/home/goodjob# docker versionClient: Docker Engine - Community Version:           25.0.0 API version:       1.44 Go version:        go1.21.6 Git commit:        e758fe5 Built:             Thu Jan 18 17:09:49 2024 OS/Arch:           linux/amd64 Context:           default
Server: Docker Engine - Community Engine:  Version:          25.0.0  API version:      1.44 (minimum version 1.24)  Go version:       go1.21.6  Git commit:       615dfdf  Built:            Thu Jan 18 17:09:49 2024  OS/Arch:          linux/amd64  Experimental:     false containerd:  Version:          1.6.27  GitCommit:        a1496014c916f9e62104b33d1bb5bd03b0858e59 runc:  Version:          1.1.11  GitCommit:        v1.1.11-0-g4bccb38 docker-init:  Version:          0.19.0  GitCommit:        de40ad0

2. 检查Docker服务状态

检查Docker服务状态,确保Docker服务正常运行。

systemctl status dockerroot@WellDone:/home/goodjob# systemctl status docker● docker.service - Docker Application Container Engine     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)     Active: active (running) since Wed 2024-01-24 08:54:31 CST; 7h agoTriggeredBy: ● docker.socket       Docs: https://docs.docker.com   Main PID: 1549 (dockerd)      Tasks: 66     Memory: 178.0M        CPU: 6.959s     CGroup: /system.slice/docker.service             ├─ 1549 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock             ├─ 2010 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 6379 -container-ip 172.17.0.2 -container-port 6379             ├─ 2016 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 6379 -container-ip 172.17.0.2 -container-port 6379             ├─ 2029 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 5432 -container-ip 172.17.0.3 -container-port 5432             ├─ 2036 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 5432 -container-ip 172.17.0.3 -container-port 5432             ├─26709 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8888 -container-ip 172.17.0.4 -container-port 80             └─26716 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8888 -container-ip 172.17.0.4 -container-port 80
1月 24 08:54:30 WellDone dockerd[1549]: time="2024-01-24T08:54:30.147900140+08:00" level=info msg="Starting up"1月 24 08:54:30 WellDone dockerd[1549]: time="2024-01-24T08:54:30.150167308+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming syste>1月 24 08:54:30 WellDone dockerd[1549]: time="2024-01-24T08:54:30.222187838+08:00" level=info msg="[graphdriver] using prior storage driver: over>1月 24 08:54:30 WellDone dockerd[1549]: time="2024-01-24T08:54:30.253670047+08:00" level=info msg="Loading containers: start."1月 24 08:54:30 WellDone dockerd[1549]: time="2024-01-24T08:54:30.660930678+08:00" level=info msg="Default bridge (docker0) is assigned with an I>1月 24 08:54:31 WellDone dockerd[1549]: time="2024-01-24T08:54:31.025018910+08:00" level=info msg="Loading containers: done."1月 24 08:54:31 WellDone dockerd[1549]: time="2024-01-24T08:54:31.037721980+08:00" level=info msg="Docker daemon" commit=615dfdf containerd-snaps>1月 24 08:54:31 WellDone dockerd[1549]: time="2024-01-24T08:54:31.037911963+08:00" level=info msg="Daemon has completed initialization"1月 24 08:54:31 WellDone dockerd[1549]: time="2024-01-24T08:54:31.067895045+08:00" level=info msg="API listen on /run/docker.sock"1月 24 08:54:31 WellDone systemd[1]: Started Docker Application Container Engine.
systemctl status docker

四、部署httpd镜像

1. 下载httpd镜像

部署httpd不需要这么麻烦了,只需要在docker上面拉取所需镜像即可。
docker pull httpd
[root@welldeng welldeng]# docker pull httpdUsing default tag: latestlatest: Pulling from library/httpd2f44b7a888fa: Pull complete 376771e8483c: Pull complete 4f4fb700ef54: Pull complete 6a6627aecff0: Pull complete 152f4888b550: Pull complete fd0579f22872: Pull complete Digest: sha256:ba846154ade27292d216cce2d21f1c7e589f3b66a4a643bff0cdd348efd17aa3Status: Downloaded newer image for httpd:latestdocker.io/library/httpd:latest[root@welldeng welldeng]# docker imagesREPOSITORY                                          TAG       IMAGE ID       CREATED        SIZEhttpd                                               latest    2cfd65f8d6ff   9 days ago     167MBtomcat                                              latest    f42b2599b503   5 weeks ago    454MBnginx                                               latest    a6bd71f48f68   2 months ago   187MBregistry.cn-guangzhou.aliyuncs.com/welldene/games   v1.0      a3cf6b941e08   2 years ago    31.5MBtwang2218/gitlab-ce-zh                              latest    18da462b5ff5   5 years ago    1.61GB
部署httpd不需要这么麻烦了,只需要在docker上面拉取所需镜像即可。


docker pull httpd


[root@welldeng welldeng]# docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
2f44b7a888fa: Pull complete 
376771e8483c: Pull complete 
4f4fb700ef54: Pull complete 
6a6627aecff0: Pull complete 
152f4888b550: Pull complete 
fd0579f22872: Pull complete 
Digest: sha256:ba846154ade27292d216cce2d21f1c7e589f3b66a4a643bff0cdd348efd17aa3
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest
[root@welldeng welldeng]# docker images
REPOSITORY                                          TAG       IMAGE ID       CREATED        SIZE
httpd                                               latest    2cfd65f8d6ff   9 days ago     167MB
tomcat                                              latest    f42b2599b503   5 weeks ago    454MB
nginx                                               latest    a6bd71f48f68   2 months ago   187MB
registry.cn-guangzhou.aliyuncs.com/welldene/games   v1.0      a3cf6b941e08   2 years ago    31.5MB
twang2218/gitlab-ce-zh                              latest    18da462b5ff5   5 years ago    1.61GB

2. 创建httpd容器

使用docker快速创建httpd的容器。由于docker具有隔离性,所以我们要把配置文件和存放代码的文件路径挂载出来,我这里为了方便,直接进入docker下的httpd,把这个httpd复制了出来进行挂载。


创建思路:先用docker创建httpd的容器,复制容器的内容到你挂载的路径,然后编辑httpd的配置文件去掉报错,然后把游戏的源码放到httpd的读取路径,然后停止并删除httpd容器,根据挂载的路径和需要的端口进行docker命令开启游戏。

完整创建过程:


1.首先,先启动一个httpd的测试容器。


docker run -d -p 18888:80 httpd:latest


2.启动完毕后查看httpd的容器id


docker ps


[root@welldeng welldeng]# docker run -d -p 18888:80 httpd:latest
28ad60ac5756172ba473beca591d30ae0a0587a2c420061b7c08bed849bd5735
[root@welldeng welldeng]# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS        PORTS                                       NAMES
28ad60ac5756   httpd:latest    "httpd-foreground"       2 seconds ago   Up 1 second   0.0.0.0:18888->80/tcp, :::18888->80/tcp     laughing_wu


3.先在软件存放的目录/opt下创建httpd的文件路径,然后把容器内的httpd相关的内容复制到此路径


docker cp 28ad60ac5756:/usr/local/apache2 /opt/httpd


4.复制完后停掉这个容器并删除


docker stop 28ad60ac5756


docker rm 28ad60ac5756


5.然后使用docker启动httpd,挂载当前的复制出来的文件到容器内,这样便于在宿主机去更改httpd的配置以及程序的update


docker run -d -p 18888:80 -v /opt/httpd/apache2:/usr/local/apache2 --name httpd httpd:latest


6.把下载好的adarkroom-main复制到/opt/httpd/apache2/htdocs下面,这里是能够让httpd读到程序的路径。


7.httpd刚开启启动会有一个报错,如


AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message


这个是配置文件上的问题,用vim打开/opt/httpd/apache2/conf/httpd.conf,全局搜索ServerName,把ServerName后面的内容改为localhost:80。


命令如下:


vim /opt/httpd/apache2/conf/httpd.conf


:set number #打开vim内的行数导航


?ServerName  #全局搜索ServerName


然后enter,然后键盘输入i,开启可编辑模式。


把ServerName后面的内容改为localhost:80


然后键盘点击esc,输入:wq便保存成功。


8.重启httpd容器


docker restart httpd

3. 检查容器运行状态

检查容器的运行状态,确保httpd服务的正常运行。

docker ps



五、访问win12页面

访问首页 访问地址:http://192.168.20.8:1888/win12/desktop.html