LoginSignup
2

More than 5 years have passed since last update.

docker上でgolangのHello World

Posted at

TLDR

  • 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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2