脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Golang - docker中部署golang项目的步骤详解

docker中部署golang项目的步骤详解

2020-05-11 10:54ngeChen Golang

这篇文章主要给大家介绍了关于在docker中部署golang项目的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

理解Docker

Docker可以帮您为自己的应用程序创建一个单一的可部署“单位”。这样的单位也叫做容器,其中包含了应用程序需要的一切。例如代码(或二进制文件)、运行时、系统工具,以及系统库文件。将所有这些需要的内容打包为一个单一的单位,可确保无论将应用程序部署在何处,都能提供完全相同的环境。这种技术还可以帮您维持完全一致的开发和生产环境,通常这些环境是很难被追踪的。

一旦搭建完成,容器的创建和部署将可自动进行。这本身就可以避免一系列问题。这些问题中大部分都是因为文件不同步,或开发和生产环境之间的差异导致的。Docker可以解决这些问题。

在开发过程中使用Docker所获得的收益

在开发工作中使用Docker可以获得的部分收益包括:

  • 所有团队成员共同使用一个标准的开发环境,
  • 集中更新依存组件,在任何位置使用相同的容器,
  • 从开发到生产可以使用完全相同的环境,并且
  • 更易于修复只可能在生产环境中遇到的潜在问题。

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序

一、交叉编译

Windows 下编译 Linux 64 位可执行程序

在项目所在根目录下执行:

GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)

?
1
set GOOS=linux

GOARCH:目标平台的体系架构(386、amd64、arm)

?
1
set GOARCH=amd64

编译

?
1
go build .

二、打包镜像

Dockerfile(放在根目录下)

?
1
2
3
4
FROM hub.skyinno.com/common/alpine:latest
MAINTAINER FAE Config Server "fae@fiberhome.com"
ADD mars /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/mars"]
  • FROM:为后面的指令设置基础镜像。一个有效的Dockerfile文件必须以FROM作为第一条非注释指令
  • MAINTAINER:设置生成的镜像的Author字段
  • ADD:复制新文件、目录或远程文件URL并添加他们到容器的文件系统路径
  • ENTRYPOINT:ENTRYPOINT允许配置容器作为可执行文件运行

在跟目录下进入docker环境

?
1
set DOCKER_HOST=tcp://10.110.200.29:5555

构建镜像

?
1
2
3
4
docker build -t hub.skyinno.com/fcae/mars .
 
// 查看镜像是否构建成功
docker images

启动服务

?
1
docker run -i -d --name=mars -p 8011:8011 hub.skyinno.com/fcae/mars
  • --name:指定服务名称
  • -p:设置服务对外暴露端口

查看服务是否启动成功

?
1
docker ps -a

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。  

原文链接:http://www.jianshu.com/p/2d234e7c8b8f

延伸 · 阅读

精彩推荐
  • Golanggo日志系统logrus显示文件和行号的操作

    go日志系统logrus显示文件和行号的操作

    这篇文章主要介绍了go日志系统logrus显示文件和行号的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    SmallQinYan12302021-02-02
  • Golanggo语言制作端口扫描器

    go语言制作端口扫描器

    本文给大家分享的是使用go语言编写的TCP端口扫描器,可以选择IP范围,扫描的端口,以及多线程,有需要的小伙伴可以参考下。 ...

    脚本之家3642020-04-25
  • GolangGolang中Bit数组的实现方式

    Golang中Bit数组的实现方式

    这篇文章主要介绍了Golang中Bit数组的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    天易独尊11682021-06-09
  • Golanggolang如何使用struct的tag属性的详细介绍

    golang如何使用struct的tag属性的详细介绍

    这篇文章主要介绍了golang如何使用struct的tag属性的详细介绍,从例子说起,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看...

    Go语言中文网11352020-05-21
  • Golanggolang json.Marshal 特殊html字符被转义的解决方法

    golang json.Marshal 特殊html字符被转义的解决方法

    今天小编就为大家分享一篇golang json.Marshal 特殊html字符被转义的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    李浩的life12792020-05-27
  • GolangGolang通脉之数据类型详情

    Golang通脉之数据类型详情

    这篇文章主要介绍了Golang通脉之数据类型,在编程语言中标识符就是定义的具有某种意义的词,比如变量名、常量名、函数名等等,Go语言中标识符允许由...

    4272021-11-24
  • Golanggolang 通过ssh代理连接mysql的操作

    golang 通过ssh代理连接mysql的操作

    这篇文章主要介绍了golang 通过ssh代理连接mysql的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    a165861639710342021-03-08
  • Golanggolang的httpserver优雅重启方法详解

    golang的httpserver优雅重启方法详解

    这篇文章主要给大家介绍了关于golang的httpserver优雅重启的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    helight2992020-05-14