卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章34885本站已运行393

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

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 之前。

卓越飞翔博客
上一篇: 计算结构体字段中的切片长度
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏