Docker 将go项目打包成Docker镜像

创建一个文件夹 goWeb:

[root@VM_0_8_centos goWeb]# ls
Dockerfile  main

将编译好的go文件main,拖到goWeb内并赋权(chmod 777 main)。

在goWeb内创建文件Dockerfile,内容如下:

FROM alpine:latest
COPY main /app/main
#ENTRYPOINT [ "/user-srv" ]
CMD ["/app/main"]

其中:

  • alpine:是基础镜像
  • COPY main /app/main :main就是编译好的go项目

根据Dockerfile内容创建镜像:

[root@VM_0_8_centos goWeb]# docker build -t go .
Sending build context to Docker daemon  16.42MB
Step 1/3 : FROM alpine
 ---> a24bb4013296
Step 2/3 : COPY main /app/main
 ---> 4c9921ace956
Step 3/3 : CMD ["/app/main"]
 ---> Running in 082d973e5ffc
Removing intermediate container 082d973e5ffc
 ---> dbc58fdcc6d0
Successfully built dbc58fdcc6d0
Successfully tagged go:latest

其中:

  • -t:指定要创建的目标镜像名为go
  • .:Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

查看结果,如下:

[root@VM_0_8_centos goWeb]# docker images
REPOSITORY   TAG      IMAGE ID        CREATED         SIZE
go           latest   dbc58fdcc6d0    7 seconds ago   22MB

根据镜像创建Docker容器:

docker run  -p 9112:9111  go

其中:

  • -p 9112:9111   : 9112是服务器IP,9111是Docker容器内的go项目的端口

结束!

posted @ 2020-08-13 10:18  aaronthon  阅读(3027)  评论(0编辑  收藏  举报