玩转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%


相关文章
kde
|
6天前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
191 4
|
1月前
|
Linux Go iOS开发
Go语言100个实战案例-进阶与部署篇:使用Go打包生成可执行文件
本文详解Go语言打包与跨平台编译技巧,涵盖`go build`命令、多平台构建、二进制优化及资源嵌入(embed),助你将项目编译为无依赖的独立可执行文件,轻松实现高效分发与部署。
|
5天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
37 5
kde
|
22天前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
438 6
kde
|
26天前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
kde
966 8
kde
|
25天前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
kde
227 4

热门文章

最新文章