Maison  >  Article  >  développement back-end  >  Parlons du processus et des étapes du déploiement combiné de Golang et Docker

Parlons du processus et des étapes du déploiement combiné de Golang et Docker

PHPz
PHPzoriginal
2023-04-04 16:13:57664parcourir

Golang est l'un des langages de programmation modernes les plus populaires. Ses puissantes capacités de contrôle de concurrence et sa syntaxe concise le rendent très utile dans le développement d'applications Web, de services réseau et de cloud computing. Docker est une technologie permettant de créer, de publier et d'exécuter rapidement des applications. Il regroupe l'intégralité de l'application et ses dépendances dans un conteneur et fournit de puissantes fonctionnalités de gestion de conteneurs afin que l'application puisse s'exécuter de manière stable dans différents environnements. Par conséquent, la combinaison de Golang avec Docker pour le déploiement peut rendre les applications plus flexibles et plus pratiques à migrer et à déployer dans des environnements de développement, de test et de production.

Cet article présente principalement le processus et les étapes de déploiement de Golang et Docker.

Préparation

Avant de commencer le déploiement conjoint de Golang et Docker, vous devez effectuer quelques préparatifs, notamment les points suivants :

1 Installer Docker

Puisque nous souhaitons utiliser Docker pour le déploiement d'applications, Docker doit d'abord être installé. . Pour l'installation de Docker, veuillez vous référer à sa documentation officielle.

2. Écrire l'application Golang

Avant le déploiement, vous devez écrire l'application Golang et vous assurer qu'elle peut s'exécuter normalement localement. Voici un exemple de programme simple, qui est utilisé pour écouter les requêtes HTTP et renvoyer les paramètres demandés au client :

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
    })

    http.ListenAndServe(":8080", nil)
}

Enregistrez le code ci-dessus en tant que fichier main.go et exécutez le commande go run main.go pour démarrer l'application localement. main.go 文件,通过命令 go run main.go 即可在本地启动该应用程序。

构建应用程序 Docker 镜像

应用程序编写完成后,需要将其打包成 Docker 镜像,并上传至 Docker Hub 或其他私有镜像仓库中,以供在不同的环境中部署。以下是构建 Docker 镜像的步骤:

1. 创建 Dockerfile 文件

Dockerfile 文件是用于构建 Docker 镜像的脚本文件,其中包含了构建镜像所需要的所有命令。以下是一个简单示例的 Dockerfile 文件:

# 指定基础镜像,这里使用了 Golang 官方镜像
FROM golang

# 将本地应用程序复制到容器的 /app 目录中
ADD . /app

# 指定容器启动时要运行的命令
ENTRYPOINT /app/main

# 暴露监听端口,和应用程序中的端口保持一致
EXPOSE 8080

上面的 Dockerfile 文件指定了基础镜像为 Golang 官方镜像,将本地应用程序复制到容器的 /app 目录中,并指定容器启动时运行的命令为 /app/main。同时,还暴露了应用程序监听的端口,让该端口可以通过宿主机的网络接口进行访问。

2. 构建 Docker 镜像

通过以下命令构建 Docker 镜像:

docker build -t my-golang-app .

该命令将当前目录下的 Dockerfile 文件通 Docker 镜像构建,并指定镜像的名称为 my-golang-app

3. 上传 Docker 镜像

构建完成的 Docker 镜像可以上传至 Docker Hub 或其他私有镜像仓库中,以供在不同的环境中进行部署。我们以 Docker Hub 为例,通过以下命令上传 Docker 镜像:

docker login
# 输入 Docker Hub 的用户名和密码进行登录

docker tag my-golang-app username/my-golang-app
# 将本地的镜像打上标签并指定上传到 Docker Hub 上的仓库

docker push username/my-golang-app
# 上传 Docker 镜像到 Docker Hub 上

至此,我们已经完成了 Golang 应用程序的 Docker 镜像构建和上传。

在 Docker 中运行应用程序

在完成 Docker 镜像的构建和上传后,我们可以在 Docker 中启动应用程序。以下是在 Docker 中启动应用程序的步骤:

1. 拉取 Docker 镜像

从 Docker Hub 或私有镜像仓库中拉取 Golang 应用程序的 Docker 镜像:

docker pull username/my-golang-app

2. 运行 Docker 镜像

通过以下命令运行 Docker 镜像:

docker run -d -p 8080:8080 username/my-golang-app

该命令运行了名为 username/my-golang-app

Créer une image Docker de l'application

Une fois l'application écrite, elle doit être empaquetée dans une image Docker et téléchargée sur Docker Hub ou d'autres référentiels d'images privés pour être déployée dans différents environnements. Voici les étapes pour créer une image Docker :

1. Créer un fichier Docker 🎜🎜Le Dockerfile est un fichier de script utilisé pour créer une image Docker, qui contient toutes les commandes nécessaires pour créer l'image. Voici un exemple simple de Dockerfile : 🎜rrreee🎜Le Dockerfile ci-dessus spécifie l'image de base comme image officielle de Golang, copie l'application locale dans le répertoire /app du conteneur et spécifie la commande à exécuter lorsque le conteneur démarre en tant que /app/main. Dans le même temps, le port surveillé par l'application est également exposé, rendant le port accessible via l'interface réseau de l'hôte. 🎜🎜2. Construisez l'image Docker 🎜🎜Construisez l'image Docker via la commande suivante : 🎜rrreee🎜Cette commande construira le fichier Dockerfile dans le répertoire actuel via l'image Docker et spécifiera le nom de l'image comme my -golang-app. 🎜🎜3. Téléchargez l'image Docker🎜🎜L'image Docker terminée peut être téléchargée sur Docker Hub ou d'autres référentiels d'images privés pour un déploiement dans différents environnements. Nous prenons Docker Hub comme exemple et téléchargeons l'image Docker via la commande suivante : 🎜rrreee🎜À ce stade, nous avons terminé la construction et le téléchargement de l'image Docker pour l'application Golang. 🎜🎜Exécutez l'application dans Docker🎜🎜Après avoir terminé la construction et le téléchargement de l'image Docker, nous pouvons démarrer l'application dans Docker. Voici les étapes pour démarrer l'application dans Docker : 🎜🎜1. Extrayez l'image Docker 🎜🎜 Extrayez l'image Docker de l'application Golang depuis Docker Hub ou un référentiel d'images privé : 🎜rrreee🎜2 Exécutez l'image Docker 🎜🎜 en. Commande suivante pour exécuter l'image Docker : 🎜rrreee🎜Cette commande exécute l'image Docker nommée username/my-golang-app et mappe le port hôte 8080 où l'image s'exécute au port 8080 dans le conteneur. Une fois le conteneur Docker démarré, nous pouvons accéder à l'application Golang en accédant au http://localhost:8080/ de l'hôte. 🎜🎜Résumé🎜🎜Cet article présente comment déployer des applications Golang avec Docker. Après avoir terminé avec succès le travail de préparation, l'écriture de l'application, la création de l'image Docker, le téléchargement de l'image et l'exécution de l'image, nous avons constaté que le déploiement d'une application via la technologie Docker peut non seulement se construire rapidement, publier et exécuter des applications, mais également améliorer la stabilité et l'évolutivité des applications, apportant une grande commodité aux processus de développement, d'exploitation et de maintenance des applications. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn