首頁  >  文章  >  後端開發  >  golang alpine docker 容器入口點的正確 shell 程式?

golang alpine docker 容器入口點的正確 shell 程式?

王林
王林轉載
2024-02-09 14:09:09961瀏覽

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刪除