美文网首页
docker封装首次实践记录 2020-07-15

docker封装首次实践记录 2020-07-15

作者: 9_SooHyun | 来源:发表于2020-07-15 18:30 被阅读0次

实践环境

从docker官仓pull下来的centos:latest镜像,run起来之后执行yum install epel-release && yum install golang装好go,但未配置go相关环境变量。然后commit 生成带go的新镜像,命名为centos:golang


centos:golang

实践目标

通过Dockerfile 和 docker build命令,在centos:golang镜像的基础上进一步封装,创建新镜像centos:autorungoapp

Dockerfile需要完成:

  • 设置新镜像的go环境变量
  • 本地的$GOPATH/src/test/testgo.go拷贝到镜像内的目标路径
  • 编译镜像内的testgo.go形成executable_file testgo
  • 设置【运行容器时,自动run testgo】

实践过程

创建镜像需要的context

Dockerfile:

FROM centos:golang
COPY testgo.go /goLearn/src/testgo.go
# 配置环境变量
ENV GOROOT=/usr/lib/golang GOPATH=/goLearn PATH=$PATH:$GOROOT/bin
# build .go. note: chmod is needed or testgo permission will be rw-r--r--
RUN cd /goLearn/src/ && go build -o testgo ./testgo.go && chmod 777 testgo
# run go
CMD cd /goLearn/src/ && ./testgo

testgo.go 打印接收的数字输入,遇到0退出
注意,go程序的入口是main(),因此testgo.go必须包含main(),也就是必须归属package main

package main

import (
    "fmt"
)

func main() {
    var num int
    for true {
        fmt.Scanf("%d", &num)
        fmt.Println("num = ", num)
        if num == 0 {
            break
        }
    }
}

docker build


镜像centos:autorungoapp成功创建

docker run && docker ps 创建/运行容器并查询运行状态


ca容器已经成功在后台跑起来

检查testgo进程


testgo进程running


over

相关文章

网友评论

      本文标题:docker封装首次实践记录 2020-07-15

      本文链接:https://www.haomeiwen.com/subject/icddhktx.html