Maison >développement back-end >Golang >Utilisez Docker en langage Go pour réaliser un déploiement et une gestion rapides

Utilisez Docker en langage Go pour réaliser un déploiement et une gestion rapides

WBOY
WBOYoriginal
2023-06-15 21:49:492274parcourir

Avec le développement et la vulgarisation continus de la technologie du cloud computing, la technologie des conteneurs en tant que technologie émergente de déploiement et de gestion a été largement utilisée et promue. En tant que l'une des solutions de conteneurisation les plus populaires actuellement, Docker est devenu l'un des premiers choix pour de nombreuses entreprises et développeurs. Dans le développement de projets en langage Go, la manière d'utiliser Docker pour réaliser un déploiement et une gestion rapides est également devenue un sujet important.

Cet article présentera en détail les étapes et méthodes spécifiques d'utilisation de Docker pour réaliser un déploiement et une gestion rapides dans les projets en langage Go, couvrant les concepts de base de Docker, les commandes courantes et quelques bonnes pratiques.

1. Concepts de base de Docker

1. Image (Image)

L'image Docker est un fichier statique qui contient toutes les dépendances et l'environnement requis pour l'exécution du projet, similaire à l'image d'une machine virtuelle. Il peut être considéré comme un modèle en lecture seule. S'il doit être modifié, il doit être modifié lors de son exécution dans le conteneur.

2. Container

Le conteneur Docker est une instance en cours d'exécution créée à partir d'une image Docker. Il peut être considéré comme un état d'exécution de l'image Docker. Il dispose d'un système de fichiers, d'un réseau et d'autres ressources indépendants, et est léger et rapide. d'autres avantages.

3. Warehouse (Repository)

Le référentiel Docker est un système de stockage centralisé utilisé pour stocker et gérer les images Docker. Il est divisé en deux types : public et privé. Parmi eux, l'entrepôt public Docker Hub est un entrepôt de miroirs ouverts officiellement maintenu par la communauté Docker. Il contient un grand nombre de miroirs couramment utilisés, notamment des bases de données, des serveurs Web, des systèmes d'exploitation, des langages de programmation et d'autres types.

2. Commandes Docker communes

1. Commande d'image Docker

  • images Docker : répertoriez toutes les images sur l'hôte local.
  • docker search image-name : recherchez des images sur Docker Hub.
  • docker pull image-name : téléchargez l'image spécifiée depuis Docker Hub.
  • docker rmi image-name : supprimez l'image sur l'hôte local spécifié.

2.Commande du conteneur Docker

  • docker run -d image-name : exécutez un conteneur en arrière-plan.
  • docker ps : répertorie tous les conteneurs actuellement en cours d'exécution.
  • docker stop containers-id : arrête un conteneur en cours d'exécution.
  • docker start containers-id : redémarrez un conteneur arrêté.
  • docker rm containers-id : Supprimer un conteneur arrêté.
  • docker logs conteneur-id : affichez les journaux du conteneur.
  • docker exec -it conteneur-id /bin/sh : exécute des commandes dans le conteneur.

3. Utiliser le déploiement Docker dans les projets en langage Go

1 Écrire Dockerfile

Dockerfile est un fichier texte utilisé pour créer des images Docker. Il comprend une série de commandes basées sur le système d'exploitation et certaines commandes personnalisées permettant de spécifier les règles de construction de l'image Docker et les programmes qui doivent être exécutés. Dans le projet de langage Go, nous devons spécifier l'environnement de compilation et la commande de démarrage du programme Go.

Par exemple :

# 指定基础镜像
FROM golang:alpine

# 指定程序工作目录
WORKDIR /app

# 将当前目录下的代码复制到容器中的/app目录下
COPY . /app

# 构建Go程序
RUN go build -o main .

# 启动Go程序
CMD ["/app/main"]

2. Construisez l'image Docker

Dans le répertoire racine du projet de langage Go, exécutez la commande suivante :

docker build -t image-name .

Parmi elles, image-name spécifie le nom de l'image Docker, et . répertoire actuel, qui est le répertoire où se trouve le Dockerfile.

3. Exécutez le conteneur Docker

docker run -d -p host-port:container-port image-name

Parmi eux, host-port spécifie le numéro de port hôte, containers-port spécifie le numéro de port du conteneur et image-name spécifie le nom de l'image Docker.

4. Bonnes pratiques

1. Utiliser la construction en plusieurs étapes

Lors de la création d'une image Docker dans un projet en langage Go, vous pouvez utiliser la méthode de construction en plusieurs étapes, c'est-à-dire spécifier les environnements de compilation et de déploiement séparément dans le fichier. Dockerfile. Vous pouvez ajouter l'image Docker à La taille est considérablement réduite, ce qui améliore l'efficacité du téléchargement, du transfert et du déploiement de l'image.

Par exemple :

# 编译阶段
FROM golang:alpine AS builder
WORKDIR /go/src/app
COPY . .
RUN go build -o app .

# 部署阶段
FROM alpine:latest
COPY --from=builder /go/src/app/app /app/
CMD ["/app/app"]

2. Utilisez Docker Compose pour gérer plusieurs conteneurs

Docker Compose est un outil de ligne de commande permettant de gérer plusieurs conteneurs. Vous pouvez définir et exécuter plusieurs conteneurs via un fichier docker-compose.yml distinct. le déploiement d'applications multi-conteneurs est plus facile et plus pratique.

Par exemple :

version: '3'
services:
  web:
    build: .
    ports:
      - "8080:8080"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: password

où web et db sont les noms des services, build spécifie la méthode de construction de l'image Docker ou le nom de l'image, ports spécifie le mappage de port et environnement spécifie les variables d'environnement.

Résumé

L'utilisation de Docker comme solution de conteneurisation peut rendre le déploiement et la gestion des projets en langage Go plus efficaces et plus pratiques. Cet article présente en détail les méthodes et étapes spécifiques d'utilisation de Docker pour le déploiement et la gestion dans les projets en langage Go sous trois aspects : les concepts de base de Docker, les commandes courantes et les meilleures pratiques. J'espère que cela pourra aider les lecteurs.

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