步骤一 - 创建Dockerfile
如下的Dockerfile可以满足以上的要求:
FROM golang:16
# Install beego and the bee dev tool
RUN go get githubcom/astaxie/beego && go get githubcom/beego/bee
# Expose the application on port 8080
EXPOSE 8080
# Set the entry point of the container to the bee command that runs the
# application and watches for changes
CMD ["bee", "run"]
第一行,
FROM golang:16
将Go的官方映像文件作为基础映像。该映像文件预安装了 Go 16 该映像已经把 $GOPATH 的值设置到了 /go 。所有安装在 /go/src 中的包将能够被go命令访问。
第二行,
RUN go get githubcom/astaxie/beego && go get githubcom/beego/bee
安装 beego 包和 bee 工具。 beego 包将在应用程序中使用。 bee 工具用语在开发中再现地重新加载咱们的代码。
第三行,
EXPOSE 8080
在开发主机上利用容器为应用程序开放8080端口。
最后一行,
CMD ["bee", "run"]
使用bee命令启动应用程序的在线重新加载。
步骤二 - 构建image
一旦创建了Docker file,运行如下的命令来创建image:
docker build -t ma-image
执行以上的命令将创建名为ma-image的image。该image现在可以用于使用该应用程序的任何人。这将确保这个团队能够使用一个统一的开发环境。
为了查看自己的系统上的image列表,运行如下的命令:
docker images
这行该命令将输出与以下类似的内容:
REPOSITORY TAG IMAGE ID CREATED SIZE
ma-image latest 8d53aa0dd0cb 31 seconds ago 7847 MB
golang 16 22a6ecf1f7cc 5 days ago 7439 MB
注意image的确切名字和编号可能不同,但是,应该至少看到列表中有 golang 和 ma-image image。
步骤三 - 运行容器
一旦 ma-image 已经完成,可以使用以下的命令启动一个容器:
docker run -it --rm --name ma-instance -p 8080:8080 \
-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image
让咱们分析一下上面的命令来看看它做了什么。
。docker run命令用于从一个image上启动一个容器
。-it 标签以交互的方式启动容器
。--rm 标签在容器关闭后将会将其清除
。--name ma-instance 将容器命名为ma-instance
。-p 8080:8080 标签允许通过8080端口访问该容器
。-v /app/MathApp:/go/src/MathApp更复杂一些。它将主机的/app/MathApp映射到容器中的/go/src/MathApp。这将使得开发文件在容器的内部和外部都可以访问。
。ma-image 部分声明了用于容器的image。
执行以上的命令将启动Docker容器。该容器为自己的应用程序开发了8080端口。无论何时做了变更,它都将自动地重构自己的应用程序。自己将在console(控制台)上看到以下的输出:
bee :141
beego :161
Go :go version go16 linux/amd64
2016/04/10 13:04:15 [INFO] Uses 'MathApp' as 'appname'
2016/04/10 13:04:15 [INFO] Initializing watcher
2016/04/10 13:04:15 [TRAC] Directory(/go/src/MathApp)
2016/04/10 13:04:15 [INFO] Start building
2016/04/10 13:04:18 [SUCC] Build was successful
2016/04/10 13:04:18 [INFO] Restarting MathApp
2016/04/10 13:04:18 [INFO] /MathApp is running
2016/04/10 13:04:18 [asm_amd64s:1998][I] >
1 可以隐藏源码
2 Docker部署可以通过将源码打包成镜像文件并在容器内运行来隐藏源码。
该容器将只包含编译后的二进制文件和相关资源,而不包括源代码。
这可以增加应用程序的安全性,防止源代码被非法获取和修改。
3 但是需要注意的是,即使隐藏了源码,黑客仍然可以通过反编译、解密等方法来获取源代码。
因此,安全性还需要通过其他措施来保障,例如使用加密技术、权限管理等。
以上就是关于如何使用docker部署web应用全部的内容,包括:如何使用docker部署web应用、入门、快速搭建Docker分布式项目环境、docker部署可不可以隐藏源码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)