Code前端首页关于Code前端联系我们

Docker实现golang微服务项目实用教程

terry 2年前 (2023-09-28) 阅读数 63 #未命名
Docker部署golang微服务项目实践教程

Docker是一个基于Go语言、按照Apache2.0协议开源的开源应用容器引擎。

Docker 允许开发者将他们的项目以及项目所需的依赖包打包到一个轻量级、可移植的容器中,并且这个容器可以发布到任何流行的 Linux 机器上,并且还可以虚拟化

容器使用完全沙盒机制,它们之间没有任何接口(类似于iPhone应用程序)。更重要的是,容器的性能很低,容器引擎,Docker的主要特点如下

1。更快的交付和部署

开发人员可以使用一系列标准映像来创建开发容器。开发完成后,运维人员可以直接使用这个容器来部署代码。使用Docker,可以快速创建容器并快速迭代应用程序,并且整个过程都是可见的,使团队的其他成员更容易了解应用程序是如何创建和工作的。 Docker容器轻量级且启动速度快,可以节省大量的开发、测试和部署时间。

2。更高效的虚拟化

Docker容器运行时,不需要额外的虚拟机程序的支持。由于是内核级虚拟化,因此可以实现更高的性能和效率。

3。更轻松的迁移和扩展

Docker 容器几乎可以运行在任何平台上,包括物理机、虚拟机、公有云、私有云、个人电脑和服务器。这种良好的兼容性使得用户可以直接将应用程序从一个平台转移到另一个平台,这对于应用程序的迁移和扩展非常有利。

4。更轻松的管理

使用Docker时,只需要很小的改动就可以替代之前大量的升级工作。所有变更都会逐步共享和更新,从而实现自动高效的管理。

Docker与虚拟机的区别Docker部署golang微服务项目实践教程

Docker部署项目的全流程

我使用Docker部署golang项目。其他语言项目也是同样的步骤,只是Dockerfile中需要修改一些命令

1,在golang项目的源码中,写了一个非常简单的接口

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main(){
	router := gin.Default()

	router.GET("/app",func(ctx *gin.Context){
		ctx.JSON(http.StatusOK,gin.H{
			"code" : 0,
			"message" : "success",
		})
	})

	router.Run(":8080")
	return
}

2。先运行项目,然后测试接口是否可用Docker部署golang微服务项目实践教程

3。目前,该项目已启动。用浏览器去那里。暂时不用担心 Docker 文件。文件是什么,我们稍后再说Docker部署golang微服务项目实践教程

4。当项目能够正常运行后,就可以构建自己的镜像了。 Dockerfile在构建镜像之前当然是必须的,因为构建镜像的时候会解析DockerfileDocker部署golang微服务项目实践教程

这里的Dockerfile就是我这个项目需要配置的Dockerfile

5。 Dockerfile 是文本格式的配置文件。用户可以使用 Dockerfile 快速创建自定义镜像

Docker build 命令用于从 Dockerfile 创建镜像。您可以在 Docker 构建命令中使用 -f 标志来指向任何文件系统上的 Docker 文件。

所以Dockerfile配置非常重要。我详细解释一下上面的命令

(1)#Dockerfile:用来标记这个Dockerfile。可以写也可以不写。如果写的话,必须用#注释,

(2)From后面跟主图:比如我们的项目是golang,那么我们需要一个golang依赖环境。每种语言都有自己的依赖环境。 Golang 可以使用 golang:latest 镜像。当然,起点是您需要将此图像放在您的扩展坞中。如果没有,你可以自己拖动它Docker部署golang微服务项目实践教程

这张截图是我的dock中的。 golang代表镜像的名称和最新版本号。如果没有golang镜像,需要使用以下命令自动下载

docker pull golang

(3) 工作说明 /app: 考虑创建一个app文件夹。构建镜像时,指定镜像的工作目录。这个工作目录的名称可以自己选择

(4) COPY ./app: 将当前 golang 项目复制到镜像的工作目录中

(5) EXPOSE: 指定暴露容器的端口,该端口是golang项目监听的端口。这里是8080

(6) ENV:设置环境变量。我当前的环境变量是随机给定的

(7) CMD:指定启动容器时运行的命令。每个 Docker 文件只能有一个 CMD 命令。如果指定了多个命令,则仅执行最后一个命令。如果用户指定启动容器时运行的命令,则 CMD 指定的命令将被覆盖。

由于我目前已经构建了golang项目的主程序,所以我可以直接使用./main命令来运行程序。您可以在网上查看有关 Docker 文件的更多详细信息

6。配置 Dokcerfile 后,您就可以构建它。镜像

docker build -t myapp:v1.0.0 .

myapp会自己设置镜像名称,v1.0.0是版本号,你也可以自己设置,最后的.是构建项目Docker部署golang微服务项目实践教程

7 的路径。目前镜像已经搭建成功了,需要把它运行起来

查看镜像的命令是

docker images

运行镜像

docker run -d -p 8080:8080 myapp:v1.0.0

-d就是放到后台运行

-p是指定的端口号,左边是浏览器使用的端口号,可以随意给,右边是项目监听的端口号,不能更改

myapp:v1.0.0 ,即镜像名称+版本号,必须指定使用该镜像,也可以使用镜像ID Docker部署golang微服务项目实践教程

注意:目前,当显示端口号时,表示操作成功

检查运行容器

docker ps
Docker部署golang微服务项目实践教程

8。目前镜像容器已经运行起来了,我们可以测试一下Docker部署golang微服务项目实践教程

目前项目已经成功用docker部署了

更详细的Docker命令大家可以自行查看

——— —————— ———— ——

原作者:刚刚刚很不高兴

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门