LV. 19
GP 23

【討論】使用Docker三分鐘架設 CSGO SERVER

樓主 krakow krakow1
GP12 BP-
這不是一個新的技術,在業界已經運用很久,使用容器好處多多,這裡不做額外教學,請自行Google,學習的過程是有趣的。

※※※具備知識※※※
以下以1(不熟)到10(熟)為衡量基準
1.     LINUX-like(3分)→會安裝LINUX-like(會按一下步、設定IP)
2.     Docker(5)→要懂的基本指令 docker images、docker run、docker attach
3.     LINUX基本指令(3分)→會下ls、chmod
4.     會使用Google(10分)→懂得自己找答案
5.     TCP/IP知識(5分)、了解port forwarding等……

※※※使用軟體※※※
1.     OS:ubuntu22.04 LTS  64位元
2.     Software:docker

※※※以下環境為安裝好Linux及Docker※※※
基本指令解說
-v 當docker container 刪除掉之後,存放在docker container 上的資料也就會跟著刪除掉,避免這個悲劇。我們透過docker 的 volume 功能,把資料寫入到實體主機上,也就是指令-v使得實體主機的資料夾路徑 Mapping 到 Container 的資料夾路徑。
--net=host          container 的網路設定和實體主機使用相同的網路設定
--name=csgo-g9                                                                   命名container 為csgo-g9

   









※※※開始※※※
//先在home建立目錄,任何名稱都可以,以本文為例,建立csgo-g9(Linux指令)
$ mkdir -p/home/csgo-g9
$ chmod 777 /home/csgo-g9

//repository下載 image(docker pull)
$ docker pull cm2network/csgo

//查看image是否下載成功(docker images)
$ docker images

※※※執行Container※※※
//下載image之後,就可以執行container(docker run)
$docker run -itd --net=host -v /home/csgo-g9:/home/steam/csgo-dedicated/ --name=csgo-g9 cm2network/csgo

就這麼簡單,不要懷疑,這樣你自己就有一台CSGO SERVER

如果你想再掛入模組等,之後自己可以到/home/csgo-g9/自行加入metamodsourcemod,但也有更進階方式,直接寫Dockerfile build image,把metamodsourcemod直接包入。

/*進階指令(在啓動container時加入)*/
1.-e SRCDS_TOKEN={YOURTOKEN}想放上網路,就必須自己去申請專用的token,請 參考https://steamcommunity.com/dev/managegameservers
2.-e SRCDS_HOSTNAME="G9 CSGO Server"自己的主機名稱
3.-e SRCDS_MAXPLAYERS=20 主機人數
4.-e SRCDS_NET_PUBLIC_ADDRESS=61.216.146.51 (Internet IP)
5.-e SRCDS_PORT=27015  (要連線的port)

※※※範例※※※
docker run -itd --net=host -v /home/steam/csgo-g9:/home/steam/csgo-dedicated/  \
--name=csgo-g9 \
-e SRCDS_NET_PUBLIC_ADDRESS=61.216.146.51 \
-e SRCDS_MAXPLAYERS=20 \
-e SRCDS_GAMETYPE=0 \
-e SRCDS_HOSTNAME="G9 CSGO Server" \
-e SRCDS_GAMEMODE=0 \
-e SRCDS_PORT=27015 \
-e SRCDS_TOKEN=148C2A86E7E017C82XXXXXXXXXXXXXXX cm2network/csgo


/*其他指令參考*/
SRCDS_TOKEN="changeme"
SRCDS_RCONPW="changeme"
SRCDS_PW="changeme"
SRCDS_PORT=27015
SRCDS_TV_PORT=27020
SRCDS_NET_PUBLIC_ADDRESS="0"
SRCDS_IP="0"
SRCDS_LAN="0"
SRCDS_FPSMAX=300
SRCDS_TICKRATE=128
SRCDS_MAXPLAYERS=14
SRCDS_STARTMAP="de_dust2"
SRCDS_REGION=4
SRCDS_MAPGROUP="mg_active"
SRCDS_GAMETYPE=0
SRCDS_GAMEMODE=1
SRCDS_HOSTNAME="New CSGO Server" (CSGO伺服器名稱)
SRCDS_WORKSHOP_START_MAP=0
SRCDS_HOST_WORKSHOP_COLLECTION=0
SRCDS_WORKSHOP_AUTHKEY=""
ADDITIONAL_ARGS=""


Reference

12
-
未登入的勇者,要加入討論嗎?
板務人員: