在Docker容器中使用Golang打印“Hello World”的代码

简而言之

    • golangでHello Worldをやる

 

    dockerが使える環境であることが前提

启动golang镜像并执行Hello World。

$ docker pull golang:1.8.3-alpine3.6
$ docker run -it golang:1.8.3-alpine3.6

# apk --no-cache add vim=8.0.0595-r0
# vim main.go
package main

import "fmt"

func main() {
        fmt.Printf("Hello World\n")
}

# go run main.go
Hello World

# go build main.go
# ls -l main*
-rwxr-xr-x    1 root     root       1560062 Aug  5 06:14 main
-rw-r--r--    1 root     root            81 Aug  5 06:13 main.go

# ./main
Hello World

# exit

儲存所建立的影像(提交)。

$ docker ps -a | grep golang:1.8.3-alpine3.6
1e9306728b3e        golang:1.8.3-alpine3.6   "/bin/sh"                5 minutes ago       Exited (0) 50 seconds ago                         infallible_hamilton

$ docker commit infallible_hamilton tsujimitsu:golang
sha256:215c40c37af81fac9bbc4daa030ce965d2dd3e940729589f0d79778770aaee67

$ docker image ls | grep golang
tsujimitsu                golang              215c40c37af8        13 seconds ago      285 MB

启动提交的映像文件

$ docker run -it tsujimitsu:golang
# ./main
Hello World

Dockerfile 附录

$ vim Dockerfile
FROM golang:1.8.3-alpine3.6

MAINTAINER tsujimitsu

RUN apk --no-cache add vim=8.0.0595-r0

$ docker build -t tsujimitsu/golang:1.8.3 ./
$ docker image ls | grep tsujimitsu/golang
tsujimitsu/golang         1.8.3               ff0c5cdf4a51        29 seconds ago      284 MB

$ docker run -it tsujimitsu/golang:1.8.3
# go version
go version go1.8.3 linux/amd64

# vim a.out
# exit
bannerAds