본문 바로가기
  • 마침표 보다 쉼표를 나타내자
서버/Docker

마인크래프트 서버 만들기

by Y코더 2024. 3. 27.
728x90

마인크래프트 서버를 만들어보자! 😎

 

 

마인크래프트를 즐기다보면

친구들과 함께 플레이하고 싶을 때가 생긴다.

하지만 게임사에서 서버를 제공하지 않기 때문에

사용자가 직접 버킷을 활용해서 서버를 열어야 한다.

 

초등학교 다닐때도 마인크래프트를 했었는데... 지금도 고사양 게임이다.


사전지식 📒

도커로 마인크래프트 서버를 열 것이다.

공유기 포트포워딩은 기본적으로 할 수 있어야 한다.

 

워낙 신제품이 쏟아져 나오기에 기종에 맞게 배우도록하자.

 

마인크래프트 사용포트 : 25565


도커로 마인크래프트 서버를 여는 이유

도커로 관리 시 좋은점 😁

  1. 다른 프로그램에 의해 환경이 간섭받지 않는다.
  2. 컨테이너로 관리하여 사용하기 쉽다.

 

도커는 일회용 컨테이너로 실행이 종료가 되면 모든 데이터가 사라지게 된다 !!


그래서 도커 실행시 저장소를 마운트 해주어야 한다
여기서 고려해야 할 점은 파일의 위치와 권한이다.

 

/home/사용자명/minecraft/minecraft_data

 

 

기본적으로 도커 실행권한은 루트권한이 있는 유저로 실행 되기에

게임파일이 생성이 되면 일반 계정으로는 파일을 수정할 수 없게 된다.

 

필자도 일반계정을 생성하여 도커를 관리하려고 했으나

파일 권한 문제로 많은 고민을 했다.


마인크래프트 도커 이미지

가장 많이 사용되고 있는 마인크래프트 도커 이미지인
itzg/minecraft-server 를 사용하여 컨테이너를 생성해보자.

 

https://github.com/itzg/docker-minecraft-server

 

GitHub - itzg/docker-minecraft-server: Docker image that provides a Minecraft Server that will automatically download selected v

Docker image that provides a Minecraft Server that will automatically download selected version at startup - itzg/docker-minecraft-server

github.com

 

docker run -v /home/사용자명/minecraft/minecraft_data:/data -e EULA=TRUE -e VERSION=1.20.4 -e INIT_MEMORY=14G -e MAX_MEMORY=14G -e TZ=Asia/Seoul -e TYPE=PAPER -d -p 25565:25565 --name mc itzg/minecraft-server

 

구문이 길지만 하나씩 설명해보면 크게 어려울 것 없다.

 

📌 -e EULA=TRUE

 

혹시라도 마인크래프트 서버를 열어본 경험이 있다면
EULA에 동의해야하는 것이 기억날 것이다.


* EULA : 서버 내 유료 서비스 금지 조항

 

서버가 켜졌다가 바로 내려가는데

EULA 의 동의여부를 물어보는 것을 바로 설정 할 수 있다.

 

📌 -e VERSION=1.20.4

마인크래프트 버전에 따라 설치를 하면 된다.

게임버전이 서버버전과 일치해야 실행이 된다.

 

📌 -e INIT_MEMORY=14G -e MAX_MEMORY=14G

마인크래프트 서버 메모리를 할당하는 옵션이다.
컴퓨터의 사양에 맞춰 메모리 용량을 바꾸어 기입하면 된다.
(마인크래프트 서버만 구동시 최대 메모리의 80퍼가 가장 이상적이다.)

 

📌 -e TZ=Asia/Seoul

TimeZone 설정이다.

우린 대한민국에 살고 있으니 아시아/서울로 설정한다.

 

📌 -e TYPE=PAPER

서버 버킷에도 종류가 많지만 페이퍼 서버가 가장 가볍고 빠른듯 하다.
특히 TNT를 폭발한다고 가정했을 때 가장 서버에 부하가 적다.

 

📌 -d -p 25565:25565

-d 옵션은 컨테이너를 백그라운드에서 실행하기 위해서 이고
-p 옵션은 포트를 설정하기 위해서이다.
(마인크래프트는 25565를 사용한다. 서버 입력시 보이지는 않지만 뒤에 25565 가 붙는다.)

 

 

포트포워딩까지 마치면 기본 서버 세팅으로 잘 실행되는 것을 알 수 있다.


마인크래프트 서버 데이터 백업

 

서버를 만들고 나서 데이터를 백업하거나

원래 사용하던 맵데이터를 사용하고자 할 때

파일질라, WinSCP 같은 FTP 프로그램을 사용하면 편리하다.

 

필자는 서버에 나스를 마운트하여 사용했지만

상당히 비효율적이라서 버전 업그레이드 이후로는 마운트 하지 않았다.

 

https://yy-tech.tistory.com/295

 

다시 Ubuntu 서버로

간혈적으로 SSH 접속이 끊기다. CentOS 7.9를 최신 프로세서로 사용하니 상당히 골머리가 아프다. 어찌저찌 랜드라이버, 그래픽드라이버를 깔고나서 사용만 잘하면 되겠지 싶었지만 어찌된 영문인

yy-tech.tistory.com

 

https://yy-tech.tistory.com/235

 

우분투 서버 나스 공유 폴더 사용하기

나중에 우분투 서버를 돌리다가 용량이 많이 부족해 지는 것을 대비하여 나스 서버로 백업을 하기 위하여 마운트 해보기로 했다. 우선 슈퍼 유저 계정으로 로그인 한다 ( su ) 항상하는 작업 apt-ge

yy-tech.tistory.com

 

( 대부분 서버 테러 대비 목적으로 백업을 한다. )

 

마음에드는 FTP 프로그램을 선택했으면 계정으로 로그인한다.

그리고 앞서 말한 경로로 가서 minecraft_data 를 찾는다.

 

/home/사용자명/minecraft/minecraft_data

 

이 디렉터리 전체를 내 컴퓨터로 복사해오면 백업 완료이다 !!

 

 


마인크래프트 서버 로그 접속

아까 도커 런 을 할때 mc 라는 것을 붙였다.

이렇게 별칭을 붙여두면 쉽게 접근하여 사용할 수 있다. 😁

 

서버 로그를 읽어보도록 하자

docker logs -f mc

 

해당 구문을 입력하면 서버 버킷에 나오는 로그를 실시간으로  읽을 수 있다.

 

Done~!! 👍

서버가 완전히 실행 되었는지 확인 할 수 있다.

그리고 마인크래프트를 키고 멀티플레이를 확인한다.

 

 

이렇게 플레이어의 서버 접속기록 까지 표출된다.

 

마인크래프트로 채팅을 하면 여기에 다 남는다고 생각하면 된다.

 

이제 명령어를 써보도록 하자

docker exec -it mc rcon-cli

 

해당 구문을 입력하면 익숙한 화면이 기억 날 것이다.

 

 

help를 입력하니 똑같은 화면을 볼 수 있다.

여기서는 ' / ' 를 입력하면 명령어가 작동하지 않는다.

 

이렇게 ssh 접속을 해서

화이트 리스트 관리나 맵 백업 등등 간단한 작업들이 가능하다.


스마트폰으로 서버를 관리해보자

 

필자는 모바일 ssh 접속으로 Termius 를 쓰고있다.

명령어도 추천 해주고 편리하다.


마치며

고등학교 시절 친구들과 함께 만든 마인크래프트 서버이다.

다른 사람이 보기에는 그저 단순한 게임이지만 나에게는 보물 같은 존재다.

 

그때의 풋풋한 열정 그리고 친구들과 보낸 시간들이 그대로 담겨있다.

 

당시에는 상상도 못했던 개발자라는 꿈을 이루고

지금 이 자리에 서 있을 수 있게 해주신 부장님께 감사하다.

 

현재 팀에 배정되어 많은 도움을 받고 있지만~!!

언젠가는 팀의 발전에 기여하는

든든한 버팀목이 되어 함께 성장하고 싶다 😊

728x90

'서버 > Docker' 카테고리의 다른 글

도커에 오라클 설치후 외부접속  (127) 2024.03.11
우분투 서버 램 증설  (0) 2023.06.06
스프링부트 배포하기  (2) 2023.05.21
도커 설치  (1) 2023.05.12
도커에 MySQL 설치후 외부접속  (0) 2023.05.04