docker专项(二)打包应用

文章【docker专项(一)基本使用】https://www.jianshu.com/p/362044c81bdb 仅仅只是通过基础镜像把一段python脚本构建成新的镜像。

本文讲述如何用docker打包自己的一个小应用,开放端口并提供服务

一 、先从hub.docker.com下载一个golang的镜像作为基础镜像
image.png

我们直接选择latest

docker pull golang:latest

通过docker images 查看一下当前的已经pull下来的镜像库


image.png
二、编写dockerfile文件

我们先在终端跑一下示例应用,我找到一个之前用gin框架开发的小网站,先在本地跑一波


image.png

image.png

我们看到该示例程序是监听8080端口的,我们直接访问本地的8080端口


image.png

ok没问题,为了方便演示(主要不想在基础镜像搞goland的环境,懒)
我们把构建时我们把源码编译为二进制文件,到时候只需要执行二进制文件即可

复制所需要的文件到dockerfile同目录下


image.png

ADD/COPY命令这里有一个注意点
本机目录不能使用绝对路径,因为它本身就是一个相对路径
本机目录直接从当前目录开始,所有需要复制的文件放在当前目录
所以需要copy什么目录或者文件要先复制到当前目录,自行建立目录关系

以下为一个简单的dockerfile

FROM golang:latest
WORKDIR /hone/gotest/goitzyd/
ADD src /hone/gotest/goitzyd/
EXPOSE 8080
RUN cd /hone/gotest/goitzyd/ \
&& export GOPROXY=https://mirrors.aliyun.com/goproxy/ \
&& rm -rf gp.sum  \
&& rm -rf go.mod  \
&& go mod init itzyd \
&& go mod tidy \
&& go build -o test


CMD /hone/gotest/goitzyd/test

三、执行一下构建
docker build -t test:v1.0 .

查看构建结果


image.png

执行docker images 查看本地镜像列表


image.png

四、让镜像跑起来

docker run -itd -p 7070:8080 --name=gotest gotest:v1.0
image.png

访问一下7070端口验证一下


image.png

验证成功

你可能感兴趣的:(docker专项(二)打包应用)