首页 > 后端开发 > Golang > golang alpine docker 容器入口点的正确 shell 程序?

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

王林
发布: 2024-02-09 14:09:09
转载
1014 人浏览过

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

Golang Alpine Docker容器的正确Shell程序入口点是什么?这是许多开发者在使用Golang和Alpine镜像构建Docker容器时经常遇到的问题。在解决这个问题之前,我们首先需要了解Golang和Alpine的相关知识。Golang是一门高效、简洁的编程语言,而Alpine是一个轻量级的Linux发行版。在使用Alpine作为基础镜像时,由于其精简的特性,一些常见的Shell命令可能会缺失。那么,如何正确设置Golang Alpine Docker容器的入口点,以便能够运行Shell程序呢?让我们来看看php小编苹果为你提供的答案。

问题内容

我正在尝试启动一个 golang alpine docker 容器(只是基本映像)并立即连接到它来运行命令,但我似乎无法指定正确的 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.
登录后复制

我也尝试过:/bin/sh。我在这里缺少什么?

解决方法

我只会在评论中写一个答案而不是命令。

要启动 golang alpine docker 容器(只是基本映像)并立即连接到它来运行命令,您可以执行以下操作:

docker run -it golang:1.20-alpine /bin/sh
登录后复制

如果你想命名你的容器,你可以这样做:

docker pull golang:1.20-alpine
docker run -id --name=test5 golang:1.20-alpine
docker exec -it test5 /bin/sh
登录后复制

您可以使用 docker stop test5 -t 2 停止容器,然后使用 docker start test5 再次启动容器。

您可以通过执行 docker rm test5 来删除它。

您可以稍微更改一下命令以避免错误:

docker run -d --entrypoint=/bin/sh golang:1.20-alpine
登录后复制

请注意,--entrypoint 命令行开关位于 golang:1.20-alpine 之前。

以上是golang alpine docker 容器入口点的正确 shell 程序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板