我在Docker上快速配置了一个Golang环境

为了学习Golang,我很快地使用Docker创建了开发环境。

文件夹结构
golang_docker_api
-Dockerfile
-main.go

请参考每个文件的内容。

使用Golang和Docker进行环境配置。

【Dockerfile】
将本地的main.go复制到容器镜像中进行构建和执行的Dockerfile。

FROM golang:alpine
# フォルダ作成
RUN mkdir /app/
# 作成したフォルダ内にmain.goを配置
COPY . /app/
# 作業場所を/appに設定(main.goがある場所)
WORKDIR /app/
# main.goをbuild
RUN go build -o main . 
CMD ["/app/main"]

【main.go】
在本地访问时,main.go将输出「golang api access」。

package main

import (
    "fmt"
    "net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "golang api access")
}

func main() {
    http.HandleFunc("/", index)
    http.ListenAndServe(":80", nil)
}

当文件创建完毕后,首先需要构建Dockerfile并创建镜像。
在终端中,先使用cd命令切换到Dockerfile所在的文件夹,并执行以下命令。

$docker build ./ -t go_docker_api
Sending build context to Docker daemon  3.072kB
Step 1/6 : FROM golang:alpine
.....
Successfully built 8fc142c5cd0d
Successfully tagged go_docker_api:latest

只要最后出现“Successfully”,就表示成功。

请执行接下来创建的图像。

$docker run --name go_docker -d -p 80:80 go_docker_api 
269cf535b7d0030e6058056559b9eb8334e966131eac9b077d21072615c662fa

有些字符出现了。
使用以下指令来确认启动。

$docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
269cf535b7d0        go_docker_api       "/app/main"         13 minutes ago      Up 13 minutes       0.0.0.0:80->80/tcp   go_docker
BB4824D2-7F8E-4ED7-B36D-9EFF64CA1F3A.jpeg
bannerAds