Maison >développement back-end >Golang >Programme shell correct pour le point d'entrée du conteneur Golang Alpine Docker ?

Programme shell correct pour le point d'entrée du conteneur Golang Alpine Docker ?

王林
王林avant
2024-02-09 14:09:09999parcourir

golang alpine docker 容器入口点的正确 shell 程序?

Quel est le point d'entrée correct du shell pour le conteneur Golang Alpine Docker ? Il s'agit d'un problème que de nombreux développeurs rencontrent souvent lors de la création de conteneurs Docker à l'aide d'images Golang et Alpine. Avant de résoudre ce problème, nous devons d'abord comprendre les connaissances pertinentes de Golang et Alpine. Golang est un langage de programmation efficace et concis, tandis qu'Alpine est une distribution Linux légère. Lorsque vous utilisez Alpine comme image de base, certaines commandes Shell courantes peuvent manquer en raison de sa nature simplifiée. Alors, comment définir correctement le point d'entrée du conteneur Golang Alpine Docker pour qu'il puisse exécuter le programme shell ? Jetons un coup d'œil à la réponse fournie par l'éditeur php Apple.

Contenu de la question

J'essaie de démarrer un conteneur Docker Golang Alpine (juste l'image de base) et de m'y connecter immédiatement pour exécuter des commandes, mais je n'arrive pas à spécifier le bon shell.

docker run -d golang:1.20-alpine --entrypoint=bin/sh
ec90a5d5eeba63e509acc09e234054d883aa122cd7617f89b61e7d71220847cd
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--entrypoint=bin/sh": stat --entrypoint=bin/sh: no such file or directory: unknown.

J'ai aussi essayé : /bin/sh. Qu'est-ce que j'oublie ici?

Solution de contournement

J'écrirai uniquement une réponse dans les commentaires au lieu d'une commande.

Pour démarrer le conteneur Docker Golang Alpine (juste l'image de base) et vous y connecter immédiatement pour exécuter des commandes, vous pouvez procéder comme suit :

docker run -it golang:1.20-alpine /bin/sh

Si vous souhaitez nommer votre conteneur, vous pouvez faire ceci :

docker pull golang:1.20-alpine
docker run -id --name=test5 golang:1.20-alpine
docker exec -it test5 /bin/sh

Vous pouvez utiliser docker stop test5 -t 2 停止容器,然后使用 docker start test5 pour redémarrer le conteneur.

Vous pouvez le supprimer en exécutant docker rm test5.

Vous pouvez modifier légèrement la commande pour éviter l'erreur :

docker run -d --entrypoint=/bin/sh golang:1.20-alpine

Veuillez noter que le commutateur de ligne de commande --entrypoint précède golang:1.20-alpine.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer