【云原生之Docker实战】使用docker部署家庭DOS游戏服务器

一、DOS游戏网页版介绍

该项目可以在web页面运行dos游戏,都是经典的DOS游戏,具体介绍可以浏览docker hub上oldiy/dosgame-web-docker镜像介绍。

二、检查宿主机系统版本

[root@node ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

三、检查本地docker环境

1.检查docker服务状态

[root@node ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-09-06 21:06:38 CST; 1 weeks 5 days ago
     Docs: https://docs.docker.com
 Main PID: 10785 (dockerd)
    Tasks: 53
   Memory: 4.1G
   CGroup: /system.slice/docker.service
           ├─ 10785 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─ 95385 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8165 -container-ip 192.168.160.4 -container-port 80
           ├─ 95391 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8165 -container-ip 192.168.160.4 -container-port 80
           ├─104301 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8177 -container-ip 192.168.176.3 -container-port 80
           └─104308 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8177 -container-ip 192.168.176.3 -container-port 80

Sep 14 01:01:02 node dockerd[10785]: time="2022-09-14T01:01:02.263068066+08:00" level=info msg="ignoring event" container=114c42a31d2ef7c29be9bcc71392507b39f1416...TaskDelete"
Sep 14 01:01:37 node dockerd[10785]: time="2022-09-14T01:01:37.436565470+08:00" level=info msg="Firewalld: interface br-87e02fde8c79 already part of docker zone, returning"
Sep 14 01:01:37 node dockerd[10785]: time="2022-09-14T01:01:37+08:00" level=info msg="Firewalld: docker zone already exists, returning"
Sep 14 01:01:37 node dockerd[10785]: time="2022-09-14T01:01:37+08:00" level=info msg="Firewalld: docker zone already exists, returning"
Sep 14 01:01:38 node dockerd[10785]: time="2022-09-14T01:01:38+08:00" level=info msg="Firewalld: docker zone already exists, returning"
Sep 14 01:06:07 node dockerd[10785]: time="2022-09-14T01:06:07.803105805+08:00" level=info msg="ignoring event" container=16694b04c408cf6c68ba6a189e329c200bf8818...TaskDelete"
Sep 14 01:06:08 node dockerd[10785]: time="2022-09-14T01:06:08+08:00" level=info msg="Firewalld: docker zone already exists, returning"
Sep 16 23:13:57 node dockerd[10785]: time="2022-09-16T23:13:57.266399285+08:00" level=info msg="Firewalld: interface br-85d9e0c5af94 already part of docker zone, returning"
Sep 16 23:13:57 node dockerd[10785]: time="2022-09-16T23:13:57+08:00" level=info msg="Firewalld: docker zone already exists, returning"
Sep 16 23:13:58 node dockerd[10785]: time="2022-09-16T23:13:58+08:00" level=info msg="Firewalld: docker zone already exists, returning"
Hint: Some lines were ellipsized, use -l to show in full.




2.检查docker版本

[root@node ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:03:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

四、下载oldiy/dosgame-web-docker镜像

[root@node focalboard]# docker pull oldiy/dosgame-web-docker
Using default tag: latest
latest: Pulling from oldiy/dosgame-web-docker
169185f82c45: Pull complete 
15535b654dbe: Pull complete 
24c041d71669: Pull complete 
Digest: sha256:082e2f84cb8a3212f1ff1e2d66f92f9e7d84673cd25e0667e75f86ee48a7d639
Status: Downloaded newer image for oldiy/dosgame-web-docker:latest
docker.io/oldiy/dosgame-web-docker:latest

五、部署游戏服务器

1.创建容器

[root@node focalboard]# docker run -d --name dosgame -p 262:262 oldiy/dosgame-web-docker:latest
315ee5d83d65ea64bfd5d3bdd696ba89e136901c926713f1f7e2e80b8ab5d313

2.查看容器状态

[root@node focalboard]# docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS         PORTS                                       NAMES
315ee5d83d65   oldiy/dosgame-web-docker:latest   "/bin/sh -c 'gunicor…"   4 seconds ago   Up 2 seconds   0.0.0.0:262->262/tcp, :::262->262/tcp       dosgame

3.查看容器日志

[root@node focalboard]# docker logs dosgame 
[2022-09-26 09:40:52 +0000] [1] [INFO] Starting gunicorn 19.9.0
[2022-09-26 09:40:52 +0000] [1] [INFO] Listening at: http://0.0.0.0:262 (1)
[2022-09-26 09:40:52 +0000] [1] [INFO] Using worker: sync
[2022-09-26 09:40:52 +0000] [8] [INFO] Booting worker with pid: 8
[2022-09-26 09:40:52 +0000] [9] [INFO] Booting worker with pid: 9
[2022-09-26 09:40:52 +0000] [10] [INFO] Booting worker with pid: 10
[2022-09-26 09:40:52 +0000] [11] [INFO] Booting worker with pid: 11
[2022-09-26 09:40:52 +0000] [12] [INFO] Booting worker with pid: 12
[2022-09-26 09:48:29 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:10)
[2022-09-26 09:48:29 +0000] [10] [INFO] Worker exiting (pid: 10)
[2022-09-26 09:48:29 +0000] [13] [INFO] Booting worker with pid: 13
[2022-09-26 09:49:41 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:12)
[2022-09-26 09:49:41 +0000] [12] [INFO] Worker exiting (pid: 12)
[2022-09-26 09:49:41 +0000] [14] [INFO] Booting worker with pid: 14

六、访问游戏服务器首页

在这里插入图片描述

七、进入游戏界面

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker是目前比较流行的容器化技术,其优点在于方便管理和部署应用程序。而Halo博客系统是一款基于Java开发的博客系统,其部署过程比较复杂,需要安装JDK、MySQL等依赖。本文将介绍如何使用Docker部署Halo博客系统。 1. 安装Docker 首先需要在服务器上安装Docker,可以参考官方文档进行安装。 2. 创建Docker镜像 将Halo博客系统打包成Docker镜像,可以通过Dockerfile或者docker-compose.yml文件进行创建。在这里我们以Dockerfile为例。 先创建一个空目录,将Halo博客系统的jar包和配置文件拷贝到该目录下: ``` mkdir -p /opt/halo cp -r halo.jar /opt/halo/ cp -r application.properties /opt/halo/ ``` 然后创建Dockerfile: ``` FROM openjdk:8-jre-alpine MAINTAINER yourname <youremail@domain.com> ADD halo.jar /opt/halo/halo.jar ADD application.properties /opt/halo/application.properties WORKDIR /opt/halo CMD ["java", "-jar", "halo.jar", "--spring.config.location=application.properties"] EXPOSE 8888 ``` 其中FROM指定了基础镜像,ADD将jar包和配置文件拷贝到镜像中,WORKDIR指定工作目录,CMD指定应用启动命令,EXPOSE指定容器监听的端口。 使用docker build命令创建镜像: ``` docker build -t halo . ``` 其中halo为镜像名称,可以根据需要自行修改。 3. 启动容器 使用docker run命令启动容器: ``` docker run -d -p 8080:8888 --name halo-demo halo ``` 其中-d表示启动守护进程,-p将容器的8888端口映射到主机的8080端口,--name指定容器名称,halo为镜像名称。 启动成功后,在浏览器中输入http://localhost:8080访问Halo博客系统即可。 以上就是使用Docker部署Halo博客系统的步骤,相信通过这个实战,大家可以更好地了解云原生Docker使用部署

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值