Docker镜像

Docker 镜像类似于虚拟机镜像,可以将它理解为⼀个只读的模板。
例如,⼀个镜像可以包含⼀个基本的操作系统环境,⾥⾯仅安装了Apache 应⽤程序(或
⽤⼾需要的其他软件) 。可以把它称为⼀个Apache 镜像。

Docker容器

Docker 容器类似于⼀个轻量级的沙箱, Docker 利⽤容器来运⾏和隔离应⽤。
容器是从镜像创建的应⽤运⾏实例。它可以启动、开始、停⽌、删除,⽽这些容器都是
彼此相互隔离、互不可⻅的。
可以把容器看作⼀个简易版的Linux 系统环境(包括root ⽤⼾权限、进程空间、⽤⼾空
间和⽹络空间等)以及运⾏在其中的应⽤程序打包⽽成的盒⼦。
镜像⾃⾝是只读的。容器从镜像启动的时候,会在镜像的最上层创建⼀个可写层。

Docker仓库

Docker 仓库类似于代码仓库,是Docker 集中存放镜像⽂件的场所

1.Docker引擎的安装

Linux输入如下命令:
卸载旧版本

yum remove docker \
            docker-client \
            docker-client-latest \
            docker-common \
            docker-latest \
            docker-latest-logrotate \
            docker-logrotate \
            docker-selinux \
            docker-engine-selinux \
            docker-engine

安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

添加yum软件源信息

#阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


如果出现yum-config-manager命令找不到
这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。

安装Docker CE
安装稳定版1

yum install docker-ce

启动Docker
启动并且开机启动

systemctl start docker
systemctl enable docker

测试是否安装成功
查看版本 下面两个都得有才行 client server

docker version


2.RPG小游戏的搭建

RPG小游戏的搭建原理就是自己创建一个RPG小游戏的Docker镜像,使用该镜像运行容器

创建Dockerfile文件并编辑

vi Dockerfile


docker可以运行游戏 docker打游戏_docker可以运行游戏

按i进入插入模式,复制粘贴如下代码(进入插入模式,左下角会有一个INSERT标志,若没有进入插入模式粘贴会缺失代码,按ESC键,输入:wq,回车退出编辑)

FROM centos:7
ADD http://23126342.s21d-23.faiusrd.com/0/ABUIABAAGAAg1M3F9wUoxOzFiwY?f=BrowserQuest.tar.gz&v=1592878804 /
RUN yum install php-cli php-process php-devel php-pear libevent-devel -y && yum clean all
RUN tar xzvf /ABUIABAAGAAg1M3F9wUoxOzFiwY \
&& echo -e 'sed -i "s/hostip/$HOST_IP/g" /BrowserQuest/Web/config/config_local.json && php start.php start' > /BrowserQuest/run.sh 
WORKDIR /BrowserQuest
EXPOSE 8000
EXPOSE 8787
CMD ["bash","run.sh"]

创建镜像

docker build -t rpggame .


docker可以运行游戏 docker打游戏_Docker_02

镜像中包含rpggame即成功创建

运行镜像

docker run -d  -p 8000:8000 -p 8787:8787 -e HOST_IP=xxx.xxx.xx.xxx rpggame

注:HOST_IP设置为你的服务器ip

此命令行将小游戏部署在8787端口上(关于端口放行请参考静态网页呈现小游戏)

docker可以运行游戏 docker打游戏_docker可以运行游戏_03

测试

网页输入:<服务器ip>:8787

docker可以运行游戏 docker打游戏_docker可以运行游戏_04

RPG小游戏一键神装

进入游戏界面后,右键点击检查

进入网站更改cookies


其中代码内容为:

"name":"xxxxx","weapon":"goldensword","armor":"goldenarmor"

可以修改各玩家信息:

name:游戏昵称
weapon:武器(代码中我已更改为圣剑)
armor:防具(代码中我已更改为圣甲)

代码对照表:

钢剑:sword2
斧头:axe
炽烈剑:redsword
魔剑:bluesword
圣剑:goldensword
晨星:morningstar
皮甲:leatherarmor
铠甲:mailarmor
板甲:platearmor
红宝石盔甲:redarmor
圣甲:goldenarmor
治疗药水:flask
蛋糕:cake
老鼠汉堡:burger
火狐之力:firePotion

根据代码对照表修改对应代码即可

参考链接

https://docker_practice.gitee.io/zh-cn/install/centos.html
https://docs.docker.com/engine/install/centos/