玩转Docker—使用Docker部署Go工程

简介: 玩转Docker—使用Docker部署Go工程

1 基本流程

(1)编写Go工程代码

(2)可用性测试

(3)编写Dockerfile

(4)使用Dockerfile构建Docker镜像

(5)查看构建结果并运行

(6)测试新建的Docker镜像

2 操作实现

2.1 编写Go工程代码

go-docker  #项目根目录
 - core    #代码目录
   - main.go  #具体代码文件
 - go.mod  #mod文件
 - Dockerfile #Dockerfile文件
 - main   #go build ./core/main.go 命令编译后的二进制文件

2.2 具体代码

package main

import (
   "log"
   "net/http"
)

func main() {
   http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
      w.Write([]byte("Hello Docker"))
   })
   log.Print("go docker project is running...")
   http.ListenAndServe(":8888", nil)
}

2.3 可用性测试

运行:

go run ./core/main.go

测试(在宿主机上):

curl http://127.0.0.1:8888

2.4 编写Dockerfile

#依赖镜像(母镜像),可以先使用docker search命令搜索
FROM golang:latest

#作者信息
MAINTAINER YMX "1712229564@qq.com"

#Docker工作目录
WORKDIR $GOPATH/src/go-docker

#将当前目录添加到Docker
ADD . $GOPATH/src/go-docker

#在Docker工作目录下执行命令
RUN go build ./core/main.go

#暴露端口
EXPOSE 8888

#编译后在根目录下生成而非./core目录下,最终运行Docker的初始命令
ENTRYPOINT ["./main"]

2.5 使用Dockerfile构建Docker镜像

基本语法:

docker build -t [镜像名] [Dockerfile所在目录]

具体演示:

docker build -t go-docker-latest .

2.6 查看构建结果并运行

root ~ % docker images            
REPOSITORY               TAG       IMAGE ID       CREATED          SIZE
go-docker-latest         latest    453fb231s245   9 minutes ago    953MB
root ~ % docker run -d -p 8888:8888 go-docker-latest  
a4a1f3b753913325b908bedf3d74ad1d0056223d8412524

2.7 测试新建的Docker镜像

root ~ % docker ps
CONTAINER ID   IMAGE              COMMAND    CREATED          STATUS          PORTS                    NAMES
a4a1f3b75391   go-docker-latest   "./main"   42 seconds ago   Up 42 seconds   0.0.0.0:8888->8888/tcp   jovial_z
root ~ % curl http://127.0.0.1:8888
Hello Docker%   

end~

相关文章
|
1天前
|
Cloud Native 测试技术 数据安全/隐私保护
云原生之使用Docker部署Teedy轻量级文档管理系统
【5月更文挑战第8天】云原生之使用Docker部署Teedy轻量级文档管理系统
26 1
|
1天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
16 3
|
1天前
|
Cloud Native 安全 Linux
【云原生之Docker实战】使用Docker部署mBlog微博系统
【5月更文挑战第10天】使用Docker部署mBlog微博系统
11 2
|
1天前
|
JavaScript 前端开发 测试技术
Docker环境下部署Ghost开源内容管理系统
【5月更文挑战第9天】Docker环境下部署Ghost开源内容管理系统
10 0
|
1天前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署homer静态主页
【5月更文挑战第7天】云原生之使用Docker部署homer静态主页
16 0
|
1天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
13 1
|
1天前
|
前端开发 应用服务中间件 nginx
前后端分离项目Docker部署指南(下)
前后端分离项目Docker部署指南(下)
|
1天前
|
存储 安全 数据安全/隐私保护
【Docker 专栏】Docker 容器化应用的备份与恢复策略
【5月更文挑战第9天】本文探讨了Docker容器化应用的备份与恢复策略,强调了备份在数据保护、业务连续性和合规要求中的关键作用。内容涵盖备份的重要性、内容及方法,推荐了Docker自带工具和第三方工具如Portainer、Velero。制定了备份策略,包括频率、存储位置和保留期限,并详细阐述了恢复流程及注意事项。文章还提及案例分析和未来发展趋势,强调了随着技术发展,备份与恢复策略将持续演进,以应对数字化时代的挑战。
【Docker 专栏】Docker 容器化应用的备份与恢复策略
|
1天前
|
监控 Kubernetes Docker
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
【5月更文挑战第9天】本文探讨了Docker容器中应用的健康检查与自动恢复,强调其对应用稳定性和系统性能的重要性。健康检查包括进程、端口和应用特定检查,而自动恢复则涉及重启容器和重新部署。Docker原生及第三方工具(如Kubernetes)提供了相关功能。配置检查需考虑检查频率、应用特性和监控告警。案例分析展示了实际操作,未来发展趋势将趋向更智能和高效的检查恢复机制。
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
|
1天前
|
Ubuntu Docker 容器
docker容器保存和导入
docker容器保存和导入
12 0

热门文章

最新文章