当前位置: 首页 > 知识库问答 >
问题:

无法在Docker容器中运行Curl命令

申屠弘图
2023-03-14

我从OS X VM docker主机创建了一个docker容器。我使用run命令创建了它,并基于ubuntu:xenialimage-off-docker-hub创建了容器。

我现在连接到我的容器后,它创建并登录为根和在我的容器内的命令提示符。

我试图安装homebrew,但由于某些原因,我无法运行命令来安装homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

当我跑步时,我会得到一个痛击:

curl:找不到命令

不知道为什么我不能在我的容器里使用卷曲。

共有3个答案

左丘智渊
2023-03-14

所以我在docker容器运行后添加了curl。

(这是为了调试容器...我不需要一个永久的补充)

我运行我的图像

docker run -d -p 8899:8080 my-image:latest

(以上内容使我的“应用程序”可以在端口8899上的机器上使用)(对这个问题不重要)

然后我在运行的容器中列出并创建了终端。

docker ps
docker exec -it my-container-id-here /bin/sh

如果上面的exec命令不起作用,请检查本SOF文章:

错误:无法启动容器:stat/bin/sh:没有这样的文件或目录“

然后我跑了:

apk

为了证明它存在于运行的容器中,我运行:

apk add curl

并获得以下信息:

apk添加卷曲

取来http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz

拿http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz

(1/5)安装ca证书(20171114-r3)

(2/5)安装nghttp2-libs(1.32.0-r0)

(3/5)安装libssh2(1.8.0-r3)

(4/5)安装libcurl(7.61.1-r1)

(5/5)安装卷边(7.61.1-r1)

执行busybox-1.28.4-r2.trigger

执行ca-certificates-20171114-r3.trigger

OK:35个包中的18个MiB

然后我跑curl:

/ # curl
curl: try 'curl --help' or 'curl --manual' for more information
/ # 

请注意,为了“退出”钻入终端窗口,我必须打开一个新的终端窗口并停止运行容器:

docker ps
docker stop my-container-id-here

附加:

如果你没有apk(这取决于你使用的是哪个基本映像),那么试着使用另一个安装程序。从这里的其他答案,你可以尝试:

apt-get -qq update

apt-get -qq -y install curl
杨安歌
2023-03-14

在Dockerfile中使用CURL命令时遇到相同的问题。正如Gilles指出的,我们必须首先安装curl。这些是要添加到“Dockerfile”中的命令。

FROM ubuntu:16.04

# Install prerequisites
RUN apt-get update && apt-get install -y \
curl
CMD /bin/bash
西门凯康
2023-03-14

curl:找不到命令

这是一个很大的提示,您必须使用以下工具安装:

apt-get update; apt-get install curl
 类似资料:
  • 问题内容: 我从OS X VM Docker主机创建了一个Docker容器。我使用run命令创建了它,并基于docker hub上的映像创建了容器。 创建容器并以root身份并在容器内部的命令提示符下登录后,我现在已连接到容器。 我尝试安装Homebrew,由于某种原因,我无法运行命令来安装Homebrew: 当我跑步时,我得到了重击: curl:找不到命令 不知道为什么我不能在容器内部使用cur

  • 问题内容: 我准备了一个docker-compose文件来部署带有数据库的容器: 没关系。但是现在我需要创建一个数据库并建立其结构。我需要执行一些sql命令。为了检查我是否能够做到这一点,我将其添加到服务中: 但是我遇到以下错误: 我感觉命令是在Sql Server实例启动之前执行的。我该如何解决?Sql Server启动后如何执行一些sql? 问题答案: 问题是在容器中仅执行一个命令。当您在其中

  • 问题内容: 我想在postgres映像中使用psql以便在数据库上运行一些查询。但是不幸的是,当我连接到postgres容器时,出现了该错误,找不到psql命令… 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 如何在postgres容器中运行psql命令?(我是Docker世界中的新手) 我使用Ubuntu作为主机,但没有在主机上安装postgres,而是使用postgre

  • 我想使用postgres映像中的psql在数据库上运行一些查询。但不幸的是,当我附加到postgres容器时,我得到的错误是psql命令找不到... 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 这是我的docker-compose.yml:

  • 如何让这个CURL命令在Zapier中按计划运行? Curl-请求POST\

  • 问题内容: 遵循此示例:https : //docs.docker.com/engine/examples/mongodb/ 当尝试使用以下命令连接到mongoDB时:( 其中ip是boot2docker ip的名称)+ docker ps的端口号: 27017 / tcp 或-P 0.0.0.0:49155->27017/tcp 无论哪种方式,我都会收到以下错误: 警告:无法连接到ip:2701