Docker 컨테이너로 실행되는 Golang 애플리케이션

Docker Keonteineolo Silhaengdoeneun Golang Aepeullikeisyeon



이 튜토리얼에서는 Golang 애플리케이션을 Docker 컨테이너로 실행하도록 설정하여 컨테이너화의 기본 사항을 알아봅니다. Dockerfile을 사용하여 애플리케이션의 모든 요구 사항을 구성하는 방법을 알아봅니다.

Go는 간단하고 안정적이며 효율성이 높은 소프트웨어 개발을 용이하게 하는 기능으로 유명한 오픈 소스, 정적으로 유형이 지정되고 컴파일된 프로그래밍 언어입니다. 웹 앱, 클라우드 네이티브 솔루션, 명령줄 인터페이스(CLI)를 비롯한 다양한 애플리케이션을 제작하는 데 유용성을 찾고 있으며 흥미롭게도 Docker 자체도 Go를 사용하여 제작됩니다.

우리의 경우 Go에서 간단한 HTTP 서버를 구축하여 간단한 단계로 애플리케이션을 구축하고 Dockerize하는 방법을 보여줄 수 있습니다.







요구사항:

이 튜토리얼을 진행하려면 다음 도구가 필요합니다.



  1. Go 컴파일러 설치(버전 1.21 이상 필요)
  2. 호스트 머신에서 Docker 엔진 실행
  3. Go 애플리케이션을 편집하기 위한 IDE 또는 텍스트 편집기. Visual Studio 또는 Vim을 사용하는 것이 좋습니다.
  4. Bash, ZSH, PowerShell 등과 같은 명령줄 해석기

주어진 요구 사항이 충족되면 계속 진행하여 애플리케이션을 구축하는 방법을 알아보겠습니다.



애플리케이션 구축

다음 단계는 애플리케이션을 구축하는 것입니다. 우리의 경우 간단한 메시지로 응답하는 간단한 HTTP 서버를 구축합니다.





Go 프로젝트를 저장할 디렉터리를 만드는 것부터 시작하세요. 피팅 이름을 제공할 수 있습니다.

$ mkdir go_server

해당 디렉터리로 이동하여 소스 코드를 저장할 새 파일을 만듭니다. 우리의 경우 파일이 Go 소스 코드임을 나타내는 'main.go' 파일을 호출합니다.



$ 만지다 main.go

마지막으로 다음과 같이 파일을 편집하고 애플리케이션에 소스 코드를 추가합니다.

패키지 메인

수입 (
'fmt'
'넷/http'
)

메인 기능 ( ) {
// 들어오는 요청 처리
http.HandleFunc ( '/' , 기능 ( ~ 안에 http.ResponseWriter, r * http.요청 ) {
// 클라이언트에 대한 응답 쓰기
fmt.Fprintf ( ~ 안에 , 'Docker에서 (:' )
} )

// 포트에서 HTTP 서버 시작 8080
fmt.Println ( '서버가 :8080에서 실행 중입니다.' )
http.ListenAndServe ( ':8080' , 없음 )
}

이전 애플리케이션은 포트 8080에 바인딩되는 기본 HTTP 서버를 생성합니다. 서버는 이전에 정의된 기본 메시지로 응답합니다.

애플리케이션 테스트

애플리케이션을 도킹하기 전에 앱이 제대로 작동하는지 확인하겠습니다. 다음 명령을 실행하십시오.

$ main.go를 실행해 보세요

이전 명령은 애플리케이션을 시작하고 다음과 같은 메시지를 반환합니다.

서버가 다음에서 실행 중입니다. 8080

다음으로, HTTP 서버를 테스트하기 위해 다음과 같이 'curl' 명령을 실행할 수 있습니다.

$ 컬 http: // 로컬 호스트: 8080 /

이전 명령은 다음과 같은 메시지를 반환해야 합니다.

도커에서 ( : %

이제 다음 단계에 정의된 대로 이전 애플리케이션을 계속 진행하고 도킹할 수 있습니다.

애플리케이션 컨테이너화

다음 단계에서는 애플리케이션용 컨테이너를 구축하는 방법을 논의합니다. 프로젝트 디렉터리에 Dockerfile을 만드는 것부터 시작합니다.

$ CD go_server

확장자 없이 Dockerfile이라는 파일을 만들고 텍스트 편집기로 파일을 편집합니다. 이 파일을 사용하면 애플리케이션에 대한 모든 요구 사항을 다음과 같이 정의할 수 있습니다.

$ 만지다 도커파일
$ 왜냐하면 도커파일

다음과 같이 구성을 추가합니다.

골랑에서: 1.21

작업 디렉터리 /

복사 . .

RUN 가서 main.go 빌드 -영형 기본 .

폭로하다 8080

명령 [ './기본' ]

이전 Dockerfile에서는 애플리케이션에 대한 이전 작업을 정의했습니다.

  • 기본 이미지를 공식 Golang 이미지 버전 1.21로 설정합니다.
  • 컨테이너 내부의 작업 디렉터리를 '/app'으로 구성합니다.
  • 전체 프로젝트 디렉터리를 컨테이너에 복사합니다.
  • 컨테이너 내부에 Go 애플리케이션을 빌드합니다.
  • 들어오는 HTTP 트래픽을 허용하려면 포트 8080을 노출하세요.
  • Go 애플리케이션을 실행하는 명령을 설정합니다.

Docker 이미지 빌드

애플리케이션용 이미지를 빌드하려면 터미널을 열고 프로젝트 디렉터리로 이동합니다. 그런 다음, 다음 명령을 실행하여 이미지를 빌드합니다.

$ sudo 도커 빌드 -티 go_server_docker .

go_server_docker를 앱 이미지를 할당하려는 이름으로 바꿉니다.

Docker 이미지를 성공적으로 빌드한 후 다음 명령을 사용하여 해당 이미지를 기반으로 컨테이너를 실행할 수 있습니다.

$ 도커 실행 -피 8080 : 8080 go_server_docker

이전 명령은 호스트 머신의 포트 8080을 컨테이너 내부의 포트 8080에 매핑해야 합니다.

컨테이너를 테스트하려면 다음 명령어를 실행하세요.

$ 컬 http: // 로컬 호스트: 8080

그러면 애플리케이션에 정의된 메시지가 인쇄됩니다.

결론

이 튜토리얼에서는 기본 Go 애플리케이션을 만드는 방법을 배웠습니다. 또한 Dockerfile에서 요구 사항을 정의하고, 컨테이너에서 이미지를 빌드하고, 이미지에서 컨테이너를 실행하여 애플리케이션을 컨테이너화하는 방법도 배웠습니다.