1. 安装docker -----先有docker环境
2. mkdir myDocker -----新建个文件夹,方便操作
cd myDocker ---进入
Dockerfile写入---新建镜像构造文件,就叫Dockerfile,构造的时候语句会自动执行该名称的构造文件
将golang环境作为父镜像,得先pull一个golang,因为有go的环境才能执行go代码
FROM golang//以go为基础来布置
MAINTAINER Razil "zc6496359" //这就是个名字而已
WORKDIR $GOPATH/src/godocker//go项目得在目录下才能执行就不用说了吧,这个workdir如果找不到该文件夹,就会自己新建一个,这里他自己新建一个
ADD . $GOPATH/src/godocker //这里是两部分,别搞错了,前面那个点,是把当前执行的目录下面的文件拷入后面那个路径,这里吧要执行的go或者其他的代码文件放进去
RUN go build main.go//这里就是要执行的语句,因为我这里的代码文件没有编译,需要这个语句是编译go语言生成可执行文件用的,如果前面你直接放一个已经编译好的,那就不要这句话了。
EXPOSE 8080//用哪个端口,你可以自己改其他的
ENTRYPOINT ["./main"]//这句话就是执行上面那生成的可执行文件
参数解释:
FROM -> 母镜像
MAINTAINER -> 维护者信息
WORKDIR -> 工作目录
ADD -> 将文件复制到镜像中
RUN -> 执行操作(就跟在终端执行语句一样)
EXPOSE -> 暴露端口
ENTRYPOINT -> 程序入口
编写main.go 文件 放在myDocker下
构建镜像
docker build -t zcdocker .
出现Successfully build …
说明构成成功。
docker images 查看创建的镜像
docker run -p 8080:8080 -d zcdocker
-p 本机端口:镜像端口
-d 后台运行
- 本机访问 localhost:8080/zc 返回Hello Docker Form Golang!则成功
main.go 内容如下
package main
import(
"net/http"
"fmt"
)
func main() {
http.HandleFunc("/zc",hello)
http.ListenAndServe(":8080",nil)
}
func hello(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w,"Hello Docker Form Golang!")
}
总结:
生成镜像,
1.新建Dockerfile文件
2.文件内写入,
3.执行的环境
4.需要加入那些你的项目文件
5.可能需要设置环境变量(Java好像)
7.端口号,名称等不怎么重要的东西
有疑问加站长微信联系(非本文作者)