For the complete documentation index, see llms.txt. This page is also available as Markdown.

Docker 및 컨테이너

Docker는 애플리케이션을 개발, 배포, 실행하기 위한 오픈 플랫폼입니다. Docker를 사용하면 애플리케이션을 인프라와 분리할 수 있어 소프트웨어를 빠르게 제공할 수 있습니다.

왜 Docker를 사용해야 하나요?

개발자 팀과 함께 작업하면 코드를 공유해야 합니다. 문제가 발생했을 때 듣고 싶은 마지막 말은 “내 환경에서는 잘 돼”일 것입니다. 게임 서버는 전 세계 수천 대의 서버 머신에서 안정적으로 실행되어야 합니다.

서버를 안정적으로 만들기 위해 Docker를 사용합니다 - 운영 체제 수준까지 서버 코드의 모든 종속성이 어디서 어떻게 서버가 시작되든 항상 정확히 동일하도록 보장하는 가상화 소프트웨어입니다.

시청을 권장합니다 "로컬에 설치하지 마세요" (비디오). Docker를 사용할 때 Dockerhub를 사용할 필요는 없습니다Docker ≠ Dockerhub. Docker를 프로그래밍 엔진으로 보고 Dockerhub를 앱 스토어로 생각하세요.

컨테이너

하나의 컨테이너는 코드를 패키징하는 소프트웨어의 표준 단위이며 모든 종속성을 함께 담아 애플리케이션이 한 컴퓨팅 환경에서 다른 환경으로 빠르고 안정적으로 실행되게 합니다. 컨테이너는 소프트웨어를 실행 환경과 분리하고, 예를 들어 개발과 스테이징 간의 차이에도 불구하고 일관되게 동작하도록 보장합니다.

패키징된 Docker 이미지를 실행하면, 그것들은 다음과 같습니다:

  • 컨테이너 Docker Desktop 또는 Docker Engine에서 실행 중인 경우(보통 로컬에서),

  • 배포 Edgegap에서 실행 중인 경우(Edge Cloud 및 Private Fleet 모두).

컨테이너는 Linux(또는 Docker Desktop)에서 네이티브로 실행되며 호스트 머신의 커널을 다른 컨테이너와 공유합니다. 별도의 프로세스로 실행되며, 추가 실행 파일보다 더 많은 메모리를 사용하지 않아 가볍습니다.

직접 해보기

Docker를 사용해 로컬에서 Docker 이미지를 빌드하거나 실행하려면 Docker를 설치해야 합니다:

Docker Desktop(또는 Docker CLI) 설치

설치가 완료되면 원하는 터미널을 열고 테스트 이미지를 실행해 볼 수 있습니다.

그러면 다음 단계가 자동으로 수행됩니다:

  1. Edgegap Repository에서 speedtest 이미지를 다운로드합니다(처음 한 번만).

  2. 이 이미지를 사용해 머신에 새 컨테이너를 생성하고 시작합니다.

  3. "speedtest"라는 이름을 지정합니다( --name 매개변수를 사용).

  4. 다음을 노출하여 앱 및 버전 머신의 포트를 연결할 80 컨테이너의 포트 80 에 연결할 수 있게 하여, 머신에서 컨테이너에 접근할 수 있도록 합니다.

✅ 열기 http://localhost:80 를 선호하는 브라우저에서 열어 컨테이너가 정상적으로 시작되었는지 확인하세요.

컨테이너가 실행되면 기본적인 상호작용을 할 수 있습니다 - 재시작, 중지, 모니터링.

먼저, 선호하는 터미널을 사용해 Docker 엔진에서 무엇이 실행 중인지 확인해 봅시다.

그러면 실행 중인 컨테이너에 대한 정보가 출력됩니다. 예를 들면:

실행 중인 컨테이너는 원하는 만큼 둘 수 있습니다.

컨테이너에 대한 더 많은 정보를 확인해 봅시다:

머신과 컨테이너 사이에서 공유되는 네트워크도 살펴볼 수 있습니다.

그러면 머신의 Docker 엔진에서 실행 중인 네트워크에 대한 정보가 출력됩니다.

개별 네트워크도 자세히 확인할 수 있습니다:

컨테이너 테스트가 끝나면 컨테이너가 사용하던 리소스(CPU 및 RAM)를 되찾을 수 있도록 반드시 중지하세요:

SSH 터널

서버 문제를 깊이 있게 진단하려면 이미지에서 SSH 서비스를 노출하고, 원격 호스트나 VM과 마찬가지로 컨테이너나 배포에 연결할 수 있습니다.

로컬 테스트

Dockerfile에 몇 가지 수정을 해야 합니다. OpenSSH 서비스를 설치하고, 비밀번호가 있는 사용자를 생성하고, 서비스를 활성화합시다.

다음 Dockerfile 명령을 Dockerfile에 병합하세요:

EXPOSE 는 포트를 자동으로 공개하지 않으며, Docker 엔진과 개발자를 위한 힌트입니다.

컨테이너에서 SSH 서비스를 시작하는 작업도 필요합니다:

✅ 이제 docker build, 그리고 테스트 docker run 를 로컬에서 실행한 뒤, ssh localhost:22.

클라우드에 배포

만약 Docker 및 컨테이너로 성공하지 못했다면, 배포 환경에서 테스트할 수 있습니다.

✅ Docker 레지스트리에 로그인하세요 및 docker push 새 태그를:

✅ 대시보드를 통해 이 이미지에 대한 새 테스트 앱 버전을 만드세요.

  • 22/TCP에 대한 포트 매핑을 추가해 -p 옵션을 docker run.

✅ 배포 와 동일하게 만들고, 외부 SSH 포트가 할당된 URL 또는 IP를 사용해 ssh.

✅ 테스트가 끝나면 배포를 중지하고 테스트 이미지를 삭제하세요.

마지막 업데이트

도움이 되었나요?