玩转Docker | 使用Docker部署推箱子网页小游戏

玩转Docker | 使用Docker部署推箱子网页小游戏

  • 一、项目介绍
    • 项目简介
    • 项目预览
  • 二、系统要求
    • 环境要求
    • 环境检查
      • Docker版本检查
      • 检查操作系统版本
  • 三、部署推箱子网页小游戏
    • 下载镜像
    • 创建容器
    • 检查容器状态
    • 检查服务端口
    • 安全设置
  • 四、访问推箱子网页小游戏
  • 五、总结

一、项目介绍

项目简介

  • 箱子网页小游戏介绍:

推箱子(Sokoban)是一款经典的益智类游戏,首次发行于1981年,由Thinking Rabbit公司开发。这款游戏的核心玩法是玩家控制一个角色在一个有限的二维空间内移动,并推动木箱到指定的位置。游戏的目标是在不将任何箱子推入死角的情况下,把所有的箱子都推到目标位置上。

项目预览

在这里插入图片描述

二、系统要求

环境要求

Docker 部署环境要求:

类别详细信息版本/要求
操作系统Linux (Ubuntu 20.04, CentOS 7)仅支持X86架构
Docker EngineDocker Enginev19.03 或更高版本
Docker ComposeDocker Composev2.0 或更高版本

说明:

  • 操作系统: 本项目支持的Linux发行版包括Ubuntu 20.04和CentOS 7等,且仅限于X86架构的设备。
  • Docker Engine: 需要安装v19.03或更高版本的Docker Engine。
  • Docker Compose: 需要安装v2.0或更高版本的Docker Compose。

环境检查

Docker版本检查

  • 检查Docker版本
root@wangge:~# docker -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
  • 检查当前Docker服务状态
root@wangge:~# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Tue 2024-10-01 14:59:27 UTC; 3 weeks 6 days ago
TriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 2481 (dockerd)Tasks: 10Memory: 121.2MCPU: 12.696sCGroup: /system.slice/docker.service
  • 检查当前docker compose版本
root@wangge:~# docker compose version
Docker Compose version v2.19.1

检查操作系统版本

  • 查看当前实践环境的系统版本,当前宿主机的操作系统版本为Ubuntu 22.04.1 LTS
root@wangge:~# docker compose version
Docker Compose version v2.19.1
root@wangge:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

三、部署推箱子网页小游戏

下载镜像

拉取推箱子网页小游戏斗地主网页小游戏项目的容器镜像,如下所示:

root@wangge:~# docker pull swr.cn-north-4.myhuaweicloud.com/jeven/sokoban:v1.0
v1.0: Pulling from jeven/sokoban
550fe1bea624: Pull complete
af3988949040: Pull complete
d6642feac728: Pull complete
c20f0a205eaa: Pull complete
d9a28c88a4e8: Pull complete
Digest: sha256:924afeb83309bdd774031dad7e45b6943ee8a60ed441829c265b9924b5fdae57
Status: Downloaded newer image for swr.cn-north-4.myhuaweicloud.com/jeven/sokoban:v1.0
swr.cn-north-4.myhuaweicloud.com/jeven/sokoban:v1.0

在这里插入图片描述

创建容器

执行以下命令,快速创建推箱子项目容器。

docker run -d \--restart always \--name sokoban \-p 9560:80 \swr.cn-north-4.myhuaweicloud.com/jeven/sokoban:v1.0 

也可以使用docker compose方式来创建容器,在该部署文件中进行资源限制,如果资源紧张或部署失败,可尝试将resources资源限制部分注释掉。

version: '3'services:sokoban:image: swr.cn-north-4.myhuaweicloud.com/jeven/sokoban:v1.0 container_name: sokobanrestart: alwaysports:- 9560:80deploy:resources:limits:cpus: "2.00"memory: 1Greservations:cpus: "1.00"memory: 200M
  • 执行以下命令,创建推箱子项目容器。
docker compose up -d

检查容器状态

当创建容器完毕后,我们需要确认容器是否正常启动。

root@wangge:/docker/sokoban# docker compose ps
NAME                IMAGE                                                 COMMAND                  SERVICE             CREATED             STATUS              PORTS
sokoban             swr.cn-north-4.myhuaweicloud.com/jeven/sokoban:v1.0   "nginx -g 'daemon of…"   sokoban             40 seconds ago      Up 38 seconds       0.0.0.0:9560->80/tcp, :::9560->80/tcp

检查服务端口

  • 执行以下命令,检查服务端口。
root@wangge:/docker/sokoban# ss -tunlp | grep 9560
tcp   LISTEN 0      4096          0.0.0.0:9560       0.0.0.0:*    users:(("docker-proxy",pid=92415,fd=4))
tcp   LISTEN 0      4096             [::]:9560          [::]:*    users:(("docker-proxy",pid=92422,fd=4))

安全设置

  • 执行以下命令,关闭防火墙。如果不想关闭防火墙,则需要放行相关服务端口。
systemctl stop firewalld && systemctl disable firewalld
  • 关闭selinux服务
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

四、访问推箱子网页小游戏

我们在浏览器访问:http://192.168.3.251:9560/,(IP+宿主机映射端口),即可正常访问到推箱子网页小游戏。

在这里插入图片描述

在这里插入图片描述

五、总结

通过使用Docker部署推箱子网页小游戏,我们体验到了容器化技术带来的便捷与高效。整个过程包括拉取镜像、运行容器以及配置端口映射,仅需几条简单的命令便完成了游戏的快速部署。这种部署方式不仅简化了环境配置的复杂性,还确保了游戏在不同系统上的一致性和可移植性。最终,我们在本地浏览器中顺利访问并游玩了这款经典益智游戏,深刻感受到了Docker在简化应用部署流程方面的强大能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Iperius Backup(数据备份软件) v8.3.0 中文免费版

下载: 【1】https://pan.quark.cn/s/19ef716c02d5 【2】https://drive.uc.cn/s/197acba8d8d94?public1 Iperius Backup是一款专业的备份还原软件,功能强大,支持DAT备份、LTO备份、NAS备份、磁带备份、RDX驱动器、USB备份,满足用…

K8S测试pod内存和CPU资源不足

只设置requests参数 mysql主从pod启动后监控 读压测之后 同时设置limits和requests,只调低内存值 监控 压力测试 同时设置limits和requests,只调低CPU值 初始状态 开始压测 结论 对于CPU,如果pod中服务使用CPU超过设置的limits&…

谷歌云GCP基础概念讲解

概览 云的基础是虚拟化:服务器,存储,网络。服务器是远程计算机的逻辑分区。存储是物理硬盘的逻辑划分。网络则是虚拟私有云。 谷歌是唯一一个拥有全球私有基础设施的公司;他们的谷歌云基础设施没有任何一部分通过公共互联网。换句…

Python 爬虫的寻宝大冒险:如何捕获 API 数据的宝藏

在这个信息爆炸的数字时代,数据就像是隐藏在网络深处的宝藏,等待着勇敢的探险家去发现。今天,我们要讲述的是如何成为一名 Python 爬虫探险家,装备你的代码工具,深入 API 的迷宫,捕获那些珍贵的数据宝藏。 …

C++,STL 051(24.10.28)

内容 1.map容器的构造函数。 2.map容器的赋值操作。 运行代码 #include <iostream> #include <map>using namespace std;void printMap(map<int, int> &m) {for (map<int, int>::iterator it m.begin(); it ! m.end(); it){cout << &quo…

《链表篇》---环形链表II(返回节点)

题目传送门 方法一&#xff1a;哈希表&#xff08;与环形链表类似&#xff09; 很容易就可以找到链表的相交位置。 public class Solution {public ListNode detectCycle(ListNode head) {if(head null || head.next null){return null;}Set<ListNode> visited new Ha…

从0开始深度学习(17)——数值稳定性和模型初始化

在每次训练之前&#xff0c;都会对模型的参数进行初始化&#xff0c;初始化方案的选择在神经网络学习中起着举足轻重的作用&#xff0c; 它对保持数值稳定性至关重要。 我们选择哪个函数以及如何初始化参数可以决定优化算法收敛的速度有多快。 糟糕选择可能会导致我们在训练时遇…

重学SpringBoot3-怎样优雅停机

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-怎样优雅停机 1. 什么是优雅停机&#xff1f;2. Spring Boot 3 优雅停机的配置3. Tomcat 和 Reactor Netty 的优雅停机机制3.1 Tomcat 优雅停机3.2 Reac…

【C++初阶】模版入门看这一篇就够了

文章目录 1. 泛型编程2. 函数模板2. 1 函数模板概念2. 2 函数模板格式2. 3 函数模板的原理2. 4 函数模板的实例化2. 5 模板参数的匹配原则2. 6 补充&#xff1a;使用调试功能观察函数调用 3. 类模板3 .1 类模板的定义格式3. 2 类模板的实例化 1. 泛型编程 在C语言中&#xff0…

动态规划-子序列问题——1027.最长等差数列

1.题目解析 题目来源&#xff1a;1027.最长递增子序列——力扣 测试用例 2.算法原理 1.状态表示 等差数列至少是三个数&#xff0c;所以一维数组显然无法满足状态表示&#xff0c;所以需要开辟一个二维数组来表示&#xff0c;二维数组的两个下标分别是倒数第一与倒数第二个数 …

【JSON相关漏洞(Hijacking+Injection)挖掘技巧及实战案例全汇总】

JSON相关漏洞&#xff08;HijackingInjection&#xff09;挖掘技巧及实战案例全汇总 本文一是在为测试过程中遇到json返回格式时提供测试思路&#xff0c;二是几乎所有国内的资料都混淆了json和jsonp的区别——这是两种技术&#xff1b;以及json和jsonp hijacking的区别——这…

基于知识图谱的设备问答系统

你是不是还在为毕业设计苦恼&#xff1f;今天我就来给大家分享一款基于知识图谱的设备问答系统&#xff0c;不仅技术领先&#xff0c;而且非常适合用作毕业设计项目&#xff0c;帮助你轻松通过&#xff01; 项目简介 这个设备问答系统基于Django&#xff08;后端框架&#xf…

从零开始的 vue项目部署到服务器详细步骤(vue项目build打包+nginx部署+配置ssl证书)

从零开始的 vue项目部署到服务器详细步骤&#xff08;vue项目build打包nginx部署配置ssl证书&#xff09; 文章目录 从零开始的 vue项目部署到服务器详细步骤&#xff08;vue项目build打包nginx部署配置ssl证书&#xff09;一、前言二、vue项目部署前配置1、vite.config.js 增加…

ubuntu内核更新导致显卡驱动掉的解决办法

方法1&#xff0c;DKMS指定内核版本 用第一个就行 1&#xff0c;借鉴别人博客解决方法 2&#xff0c;借鉴别人博客解决方法 方法2&#xff0c;删除多于内核的方法 系统版本&#xff1a;ubuntu20.24 这个方法是下下策&#xff0c;如果重装驱动还是不行&#xff0c;就删内核在…

豆瓣同城活动采集-过去一年到未来已定档活动

通过采集豆瓣同城活动&#xff0c;来辅助分析一个城市的文商旅体活跃繁荣程度。 以成都为例&#xff0c;2023年10月30日到2024年11月未来已定档活动期间&#xff0c;豆瓣同城活动共有975场。 示例数据&#xff1a; 活动网址&#xff1a;有&#xff0c;此处不显示 封图网址&…

海量数据面试题

⭐️前言⭐️ 本篇文章主要针对在面试时可能涉及到的海量数据的面试题&#xff0c;该类型面试题常常考虑通过位图、布隆过滤器或者哈希的方式来解决。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何…

pytorh学习笔记——cifar10(九)使用torhvision的标准resnet模型

之前的demo都是模仿和简化了已有的模型&#xff0c;也可以直接调用orhvision的标准模型&#xff0c;代码将更加简单。 新建resnet18.py import torch.nn as nn from torchvision import modelsclass ResNet18(nn.Module):def __init__(self, num_classes10):super(ResNet18, …

json与python中字典的互相转化

json的定义 JSON &#xff08;JavaScript Object Notation&#xff09; &#xff0c;是一种轻量级的数据交换格式。它的使用范围很广&#xff0c;并成为 ECMA 标准&#xff0c;可以被使用在多种编程语言中&#xff0c;用于前后端之间的数据传输、存储和交换数据。可以说是“用…

如何快速分析音频中的各种频率成分

从视频中提取音频 from moviepy.editor import VideoFileClip# Load the video file and extract audio video_path "/mnt/data/WeChat_20241026235630.mp4" video_clip VideoFileClip(video_path)# Extract audio and save as a temporary file for further anal…

Rust 力扣 - 5. 最长回文子串

文章目录 题目描述题解思路题解代码题解链接 题目描述 题解思路 从中心点先寻找和中心点相等的左右端点&#xff0c;在基于左右端点进行往外扩散&#xff0c;直至左右端点不相等或者越界&#xff0c;然后左右端点这个范围内就是我们找寻的回文串&#xff0c;我们遍历中心点&am…