如何从以分离模式运行的Docker容器中调用NATS cli

3
我是一个新手,想通过使用docker来开始使用NATS。
从docker hub(https://hub.docker.com/_/nats)拉取官方的NATS镜像后,我使用以下命令以分离模式在容器中运行:
docker container run --name my-nats -p 4222:4222 -d nats

现在,如果我想使用docker container exec命令访问NATS cli,该怎么做呢?
我尝试了几种不同的方法,但都导致错误: 尝试1:
docker exec -ti my-nats bash

导致以下错误:

... starting container process caused: exec: "bash": executable file not found in $PATH: unknown

尝试2:

docker exec -ti my-nats sh

导致以下错误:

... starting container process caused: exec: "sh": executable file not found in $PATH: unknown

第三次尝试:

docker exec -ti my-nats /bin/bash

导致以下错误:

... starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown

尝试4:
docker exec -ti my-nats /bin/sh

导致以下错误:

... starting container process caused: exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown

我没有找到与NATS cli相关的很多信息,所以我尝试了网上关于其他应用程序的所有选项。我猜NATS有一个不同的命令打开cli,但我就是找不到它。

我甚至尝试了转义反斜杠,但结果更或多或少相同的错误。

如果有任何帮助或指导,让我发现一种方法来解决问题并访问我的容器的cli,我将不胜感激。


2
可能这个镜像没有外壳。如果程序是用编译语言(C、C++、Rust、Go)编写的,并且最终镜像是从头开始构建的,那么这个镜像可能仅包含应用程序,而完全没有其他任何东西。不过,根据你的描述,这似乎并不是一个特别关于编程的问题。 - David Maze
1个回答

3

这是基于alpine的,使用ash


谢谢你的回答!我尝试将“bash”替换为“ash”,但得到了相同的结果,你有什么继续进行的想法吗? - Yaya
3
最后我终于成功了,我使用的是alpine标签:docker run --rm -it nats:2.8.4-alpine3.15 sh - Slava Kuravsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接