【抢饭碗教程】Docker搭建帕鲁服务器的保姆级教程

【抢饭碗教程】Docker从零搭建自己的帕鲁服务器保姆级教程

  • 一、背景
  • 二、环境
  • 三、步骤
    • 3.1. 下载ubuntu镜像并进入容器
    • 3.2 安装常用工具
      • 3.2.1 安装vim
      • 3.2.2 安装sudo
      • 3.2.3 安装software-properties-common
      • 3.2.4 安装lib32gcc-s1
    • 3.2 配置系统用户
    • 3. 3 安装steamcmd
    • 3.4 安装帕鲁服务器
      • 3.4.1 出现.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory问题
      • 3.4.2 安装服务器本体
    • 3.5 制作镜像
    • 3.6 本地保存和导入镜像
  • 四、常见问题处理
    • 4.1 更新下载工具如果出现以下问题,说明Docker版本低于20.10.8
    • 4.2 su切换账号后只显示$

一、背景

最近帕鲁很火,想自己搭一个帕鲁服务器,但是又不想去下载别人的镜像就自己建个镜像玩玩,本文建立在Ubuntu镜像的基础上进行帕鲁服务器搭建,当然过程中问题也不少,本文会非常详细的讲解各个步骤和一些常见问题处理。

二、环境

环境版本
ubuntu22.0.4
Docker25.0.2(大于20.10.8即可,更新教程在本文4.1)

三、步骤

3.1. 下载ubuntu镜像并进入容器

# 拉取ubuntu镜像
docker pull ubuntu:latest
# 快速创建Ubuntu容器
docker run -it -d --name server --network=host ubuntu:latest
# 进入容器
docker exec -it server bash
# 更新下载工具
apt update
# 此处可能会更新失败,出现Problem executing scripts APT::Update::Post-Invoke 'rm -f /var/cache/apt/arc异常
# 请参考本文问题处理4.1

3.2 安装常用工具

容器内一般都是纯净版,需要用户自行下载一些常用工具

3.2.1 安装vim

apt install vim

3.2.2 安装sudo

apt install sudo

配置sudo使用者,3.3中将会创建steam账号,因此要授权steam用户sudo权限,配置文件路径是/etc/sudoers,添加文件内容如下
在这里插入图片描述

3.2.3 安装software-properties-common

这个工具等会安装steamcmd依赖会用到

sudo apt install software-properties-common
sudo apt update

3.2.4 安装lib32gcc-s1

这个工具等会安装steamcmd本体会用到

# 如果是卡在14%后重新来下依赖的,需要先执行如下命令
sudo dpkg --configure -a
# 安装依赖本体
sudo apt-get install lib32gcc-s1

3.2 配置系统用户

# 创建steam用户,steamcmd命令不支持root账户登录
useradd -m steam
# 给用户创建密码
passwd steam
# 切换steam账号并进入steam账号的目录
sudo -u steam -s
cd /home/steam

3. 3 安装steamcmd

# 安装依赖,出现command not find请检查3.2常用工具有没有安装
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
# 安装本体
sudo apt install steamcmd
# 出现卡在14%请检查3.2.4有没有安装,如果卡住了不要等了,直接重新进入容器kill掉安装进程,安装好依赖后重新安装

3.4 安装帕鲁服务器

3.4.1 出现.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory问题

为啥问题写前面,因为裸服务器安装必定会出现这个问题

mkdir -p ~/.steam/sdk64/
steamcmd +login anonymous +app_update 1007 +quit
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/

3.4.2 安装服务器本体

## 安装服务器
steamcmd +login anonymous +app_update 2394010 validate +quit
## 帕鲁启动!!!
cd ~/Steam/steamapps/common/PalServer
./PalServer.sh

哦对了,还有一点要注意的,启动后如果出现如下场景不要害怕,就是启动成功了,放心在游戏连接吧
在这里插入图片描述

3.5 制作镜像

到这还没完,刚刚只是搭好了帕鲁服务器的容器,你总不想下次继续这么全套跑一遍吧,我们还是做一个自己的镜像方便以后继续使用和管理。

  1. 首先退出容器
  2. 将刚才的容器打包为帕鲁服务器镜像
docker commit server myself/palserver:latest

在这里插入图片描述

  1. 至此一个完整的帕鲁服务器镜像雏形就做好了,自用当然是知道启动容器、进去切换用户、执行启动脚本,分享给别人就不行了,下面介绍下简单的自动化启动脚本的过程:
    编写Dockerfile如下
FROM myself/palserver:latest
USER steam
WORKDIR /home/steam/Steam/steamapps/common/PalServer
CMD ["/bin/bash", "./PalServer.sh"]
# 安装镜像
docker build -t palserver .
# 至此,一个成熟可以发布给大家使用的帕鲁服务器就制作完成啦
# 附上启动命令
docker run -it -d --name server -p 8211:8211 palserver:latest

要想启动游戏执行如下命令即可,记得开启8211端口

  1. 将镜像push到私有镜像仓库源或者Docker Hub便于分享给其他人

3.6 本地保存和导入镜像

哈哈,没完没了了,很多小朋友跟着命令从上往下输,最后3.5不会上传也没自己的库,没关系,我们还能导到本地的形式来保存和导入Docker镜像。
导出方式如下:

docker save -o palserver.tar myself/palserver

导入方式如下

docker load -i palserver.tar
# 有些时候使用docker images查看会出现一个REPOSITORY和TAG都是空的镜像,不要紧张,我们如下命令给这个镜像重新打标签就行,[]为必填()非必填
docker tag [SOURCEID] [TARGET](:TARGET_VERSION)

四、常见问题处理

4.1 更新下载工具如果出现以下问题,说明Docker版本低于20.10.8

在这里插入图片描述
更新Docker值最新的方法如下

# 要将Ubuntu上的Docker升级到最新版本,可以按照以下步骤进行操作:
# 卸载旧版本的Docker:如果您已经安装了旧版本的Docker,请先卸载它们。可以使用以下命令卸载旧版本的Docker:
sudo apt-get remove docker docker-engine docker.io containerd runc# 安装依赖项:升级Docker之前,需要确保系统具有必要的依赖项。可以使用以下命令安装这些依赖项:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common# 添加Docker官方GPG密钥:可以使用以下命令添加Docker官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -# 添加Docker官方存储库:使用以下命令将Docker官方存储库添加到APT源列表中:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"# 安装Docker CE:现在,可以使用以下命令安装Docker CE(社区版):
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io# 验证Docker安装是否成功:可以使用以下命令验证Docker安装是否成功:
sudo docker run hello-world
# 如果Docker安装成功,将输出“Hello from Docker!”消息。# 如果已经安装过Docker并且运行了容器,需要重启Docker
sudo systemctl restart docker# 请注意,这只是升级Docker的一种方法。还有其他方法可以升级Docker,具体取决于您的系统和要升级到的特定版本。

转载自https://blog.csdn.net/qq_28295425/article/details/130801045

4.2 su切换账号后只显示$

编辑/etc/passwd文件,当用户切换执行的脚本为/bin/sh时,就会导致只显示$,需要改为/bin/bash,将文件修改如下
在这里插入图片描述

PS:/bin/sh是/bin/bash的软连接,在一般的linux系统当中,使用sh调用执行脚本相当于打开了bash的POSIX标准模式,也就是说 /bin/sh 相当于 /bin/bash --posix,当然影响就是一般用户的使用体验很难受

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

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

相关文章

算法逆向分析之-RC4

RC4分析几个要点: 1 S盒的初始化,会对256个字节进行初始化 2 会根据密钥初始化T表 3 会根据T表打乱S盒 4 最终的输出结果会根据取S盒中数据做异或,index为2个S盒数据之和 如下先初始化S盒,长度为256,。然后初始化T表&#x…

天地伟业接入视频汇聚/云存储平台EasyCVR详细步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

低密度奇偶校验码LDPC码(六)——SPA和积译码算法

一、和积算法基本原理 二、概率域上的和积算法 传递消息定义 概率域的迭代更新公式 三、对数域上的和积算法 预备知识:对数似然比 预备知识:Gallager引理 VN消息初始化 对数域的迭代更新公式 对数域SPA算法总结

计算机自顶向下 Wireshark labs——DNS

如本文第2.4节所述,域名系统(DNS)将主机名转换为IP地址,在互联网基础设施中发挥着关键作用。在本实验中,我们将仔细研究DNS的客户端。回想一下,客户端在DNS中的角色相对简单—客户端向其本地DNS服务器发送查询,并收到响…

视频编辑场景手绘白板解决方案

传统的视频编辑方式已经不能满足现代企业的多元化需求,美摄科技推出了手绘白板方案,为企业提供了一种全新的直播和视频编辑方式,让手绘内容成为视频的一部分,增强了互动性和视觉效果。 一、手绘白板方案的优势 1、实时手绘&…

ep-bg-purple-dark element-plus 不生效

element-plus 官网里面的 Layout 布局中的示例,官方文档中添加类名 class"grid-content ep-bg-purple-dark" 有相应的样式 import element-plus/theme-chalk/index.css //默认css样式 英文 import element-plus/dist/index.css 两…

【粉丝福利社】一书读懂物联网:基础知识+运行机制+工程实现(文末送书-完结)

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主&#xf…

缓存的概念

文章目录 一、系统缓存buffer与cachecache 的保存位置cache 的特性 二、用户层缓存DNS缓存 三、浏览器缓存过期机制最后修改时间Etag标记过期时间 expires混合使用和缓存刷新缓存刷新 cookie和session 四、CDN缓存什么是CDN用户请求CDN流程利用 302 实现转发请求重定向至最优服…

【心得】六路升压背光驱动芯片(AAT3124)LED闪烁问题解决

AAT3124是一颗六路共阳输出的1x/1.5x模式自动切换电容升压式背光驱动IC(Charger Pumper),广泛应用于大屏手机的背光LED驱动电路中,今为一台出现背光灯闪烁现象的手机进行故障排查,发现其背光驱动电路结构大致为: 现象 开机后使用一段时间,偶尔会间歇性地出现屏幕背光灯闪烁现象…

docker 开放tcp连接供idea等其他外部工具开放使用

docker 开放tcp连接供idea等其他外部工具开放使用 方法一:通过systemd工具 sudo systemctl edit docker.service 修改文件内容如下 ExecStart/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 重启 systemctl 配置 sudo systemctl daemon-reload 重启docker服务 s…

『运维备忘录』之 Systemd 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

[机器学习]LFM梯度下降算法

一.LFM梯度下降算法 2.代码实现 # 0. 引入依赖 import numpy as np import pandas as pd# 1. 数据准备 # 评分矩阵R R np.array([[4,0,2,0,1],[0,2,3,0,0],[1,0,2,4,0],[5,0,0,3,1],[0,0,1,5,1],[0,3,2,4,1],]) # 0分表示还未进行评价 # 二维数组小技巧:取行数R.s…