> 운영 및 유지보수 > Docker > Docker는 go의 두 가지 기본 이미지를 배포합니다.

Docker는 go의 두 가지 기본 이미지를 배포합니다.

王林
풀어 주다: 2020-06-15 17:50:17
앞으로
3410명이 탐색했습니다.

Docker는 go의 두 가지 기본 이미지를 배포합니다.

1. golang:latest 기본 이미지

mkdir gotest
touch main.go
touch Dockerfile
로그인 후 복사

샘플 코드:

package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
        fmt.Fprint(writer, "Hello World")
    })
    fmt.Println("3000!!")
    log.Fatal(http.ListenAndServe(":3000", nil))
}
로그인 후 복사

Dockerfile 구성

#源镜像
FROM golang:latest
#设置工作目录
WORKDIR $GOPATH/src/github.com/gotest
#将服务器的go工程代码加入到docker容器中
ADD . $GOPATH/src/github.com/gotest
#go构建可执行文件
RUN go build .
#暴露端口
EXPOSE 3000
#最终运行docker的命令
ENTRYPOINT ["./gotest"]
로그인 후 복사

Packaging 이미지

docker build -t gotest .
로그인 후 복사

golang:latest 컴파일 프로세스는 실제로 컨테이너 내에서 Go 개발을 구축하고 있습니다. 소스 환경의 이미지 패키지는 약 800M로 비교적 큽니다.

2.alpine:latest 기본 이미지

  • 이 이미지를 사용하는 일반적인 프로세스는 먼저 go 프로그램을 Linux 시스템의 바이너리 파일로 패키징한 다음 apine 환경에 넣고 실행하는 것입니다. 컴파일된 파일.

  • 기본적으로 Go의 런타임 환경 변수 CGO_ENABLED=1은 cgo가 기본적으로 시작되어 Go 코드에서 C 코드를 호출할 수 있음을 의미합니다. CGO_ENABLED=0을 설정하면 CGO가 비활성화됩니다. 따라서 다음을 실행해야 합니다. CGO_ENABLED=0 go build입니다.

  • 이 기본 이미지 패키지는 13M에 불과해 매우 작습니다.

#源镜像
FROM alpine:latest
#设置工作目录
WORKDIR $GOPATH/src/github.com/common
#将服务器的go工程代码加入到docker容器中
ADD . $GOPATH/src/github.com/common
#暴露端口
EXPOSE 3002
#最终运行docker的命令
ENTRYPOINT ["./common"]
로그인 후 복사

포장 이미지:

docker build -t common .
로그인 후 복사

추천 튜토리얼: docker

위 내용은 Docker는 go의 두 가지 기본 이미지를 배포합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:jb51.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿