玩转Docker | 使用Docker部署推箱子网页小游戏
- 一、项目介绍
- 项目简介
- 项目预览
- 二、系统要求
- 环境要求
- 环境检查
- Docker版本检查
- 检查操作系统版本
- 三、部署推箱子网页小游戏
- 下载镜像
- 创建容器
- 检查容器状态
- 检查服务端口
- 安全设置
- 四、访问推箱子网页小游戏
- 五、总结
一、项目介绍
项目简介
- 箱子网页小游戏介绍:
推箱子(Sokoban)是一款经典的益智类游戏,首次发行于1981年,由Thinking Rabbit公司开发。这款游戏的核心玩法是玩家控制一个角色在一个有限的二维空间内移动,并推动木箱到指定的位置。游戏的目标是在不将任何箱子推入死角的情况下,把所有的箱子都推到目标位置上。
项目预览
二、系统要求
环境要求
Docker 部署环境要求:
类别 | 详细信息 | 版本/要求 |
---|---|---|
操作系统 | Linux (Ubuntu 20.04, CentOS 7) | 仅支持X86架构 |
Docker Engine | Docker Engine | v19.03 或更高版本 |
Docker Compose | Docker Compose | v2.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在简化应用部署流程方面的强大能力。