Tag: curl

何时何地不在Docker Remote API中使用tty

主要关注 我使用curl来运行我的请求。 运行邮递员的请求似乎没有显示太多的TTY启用或禁用的区别。 Stderr显示启用TTY,但不会禁用TTY。 AttachStderr被设置为true(使用curl )。 当启用TTY(使用curl )时,Stdout是“不完整的”。 ========================================= 我努力想弄清楚什么时候用Docker Remote API分配一个伪tty,什么时候不用。 输出是非常不同的(取决于是否有错误,其他的东西我不太明白)。 我正在使用curl来执行我的请求。 例: 否TTY: # ls on a container curl –unix-socket /var/run/docker.sock -s -H "Content-Type: application/json" -X POST -d '{"AttachStdin": false, "AttachStdout": true, "AttachStderr": true, "Tty": false, "Cmd": [ "ls" ] }' http:/containers/mycontainer/exec curl –unix-socket /var/run/docker.sock -s -H "Content-Type: application/json" -X POST -d […]

cURL从主机到容器的工作,但从容器到容器不

标题几乎说了一切,但让我给一些上下文。 我有一个运行一个容器的MySQL实例,一个在另一个运行的API和一个运行在第三个脚本的脚本。 该脚本命中(或应该打中)在第二个运行的API。 这些都在同一台物理机器上(DigitalOcean上)。 我在Dockerfile中使用了端口(8080),并在API的运行时使用-p 8080:8080公开。 我有脚本正确指向API的IP。 在其他环境(AWS,RaspPI)中,此设置正常工作。 但在DigitalOcean上,这根本不起作用。 我的脚本试图击中数据库API只是失败。 奇怪的是,从主机到API端点的连接工作正常,所以API本身正在工作。 然而,使用docker exec从脚本docker容器内部inputcURLing会导致每次都有一个超时 – 我在脚本中遇到同样的问题。 我唯一的两个猜测是,这与DigitalOcean的Dockerconfiguration设置有关,或者Docker具有我缺less的容器间通信configuration。 TL; DR:主机上的cURL – > Docker容器API工作。 来自同一台机器上的Docker容器的cURL – > Docker容器API没有。 无论如何,如果你们中的任何人想要更多的信息,请不要犹豫,问问:)干杯!

如何在Dockerfile中添加大的HTTP文件并将它们从图像层中排除?

我们的Nexus服务器为我们的Java项目(包括其安装程序)提供构build工件。 这个安装程序真的很大 (> 1GB)。 我想检索并在Dockerfile使用它。 我到目前为止所做的是: FROM debian:jessie … RUN apt-get install -y curl xmllib-xpath-perl ENV PROJECT_VERSION xyz-SNAPSHOT … RUN VERSION=`curl –silent "http://nexus:8081/service/local/artifact/maven/resolve?r=public&g=my.group.id&a=installer&v=${PROJECT_VERSION}&e=sh&c=linux64" | xpath -q -s '' -e '//data/version/text()'` \ && echo Version:\'${VERSION}\' \ && curl –silent http://nexus/content/groups/public/my/group/id/installer/${PROJECT_VERSION}/installer-${VERSION}-linux64.sh \ –create-dirs \ –output ${INSTALL_DIR}/installer.sh \ && sh ${INSTALL_DIR}/installer.sh <someArgs> \ && rm ${INSTALL_DIR}/installer.sh … 通过这种方法,我能够: […]

Kubernetes。 HTTPS API返回“未经授权”

Kubernetes API请求curl https://192.168.0.139 –cacert /home/mongeo/ku-certs/ca.pem返回Unauthorized 请求curl localhost:8080工作正常。 我的kube-proxy和kube-apiserver standart( coreos + k8s教程 ) 如何获取有关HTTPS的数据?

Docker构buildADD vs RUN curl

如果我运行一个dockerfile,我有一个类似的命令 RUN curl -o file.txt http://XXXX/path/to/file/file.txt build设工程,而如果我使用 ADD http://XXXX/path/to/file/file.txt file.txt 构build失败,它抱怨 Got HTTP status code >= 400: 503 Service Unavailable 有没有关于ADD的东西,我不理解? 编辑文件也可以通过docker主机访问。

无法从Docker容器内访问MacOSX主机上的端口

这些是我采取的步骤: Prework: 第一: docker-machine create -d virtualbox default 然后,我用下面的Dockerfile创build了一个容器: FROM centos:latest 没有别的 – 只是一个CentOS的副本。 我build立了容器: docker build -t mycontainer . 并运行它: docker run -it –net="host" –name="test" -p 9200:9200 mycontainer 问题:当我进入容器并尝试访问在MacOSX上运行的服务(例如简单的Web服务器或本地elasticsearch)时,我得到: curl localhost:9200 curl: (7) Failed connect to localhost:9200; Connection refused 我从我的dockervm( docker-machine ssh default )中得到相同的错误。 我尝试在virtualbox中设置端口转发,设置9200到9200 – 但是没有帮助。 有任何想法吗?

Dockerregistry2.0 API v2

我拉和设置本地dockerregistry:2.0 我试图成功地推送图像,但是当我尝试search图像时,我得到404: root@ip-10-232-0-153:~# curl -v -X GET http://localhost:5000/v2/search * Hostname was NOT found in DNS cache * Trying 127.0.0.1… * Connected to localhost (127.0.0.1) port 5000 (#0) > GET /v2/search HTTP/1.1 > User-Agent: curl/7.35.0 > Host: localhost:5000 > Accept: */* > < HTTP/1.1 404 Not Found < Content-Type: text/plain; charset=utf-8 < Docker-Distribution-Api-Version: registry/2.0 < Date: […]

如何防止Dockerfile指令被caching?

在我的Dockerfile我使用curl或ADD来下载最新版本的档案,例如: FROM debian:jessie … RUN apt-get install -y curl … RUN curl -sL http://example.com/latest/archive.tar.gz –output archive.tar.gz … ADD http://example.com/latest/archive2.tar.gz … 使用curl或ADD的RUN语句创build它自己的图像层。 这将被用作未来执行docker build的caching。 问题 :如何禁用该指令的caching? 在那里得到像caching失效那样的东西,真是太好了。 例如通过使用HTTP ETags或通过查询最后修改的标题字段。 这将有可能基于HTTP标头进行快速检查,以确定是否可以使用caching图层。 我知道一些肮脏的技巧可以帮助例如在RUN语句中执行下载shell脚本。 它的文件名将在docker build被我们的构build系统触发之前被更改。 我可以在该脚本中执行HTTP检查。 但是,然后我需要存储最后使用的ETag或最后修改到某个地方的文件。 我想知道是否有一些更干净和本机的 Dockerfunction,我可以使用,在这里。

泊坞窗Rails应用程序无法服务 – curl:(56)接收失败:连接重置由对等

我用下面的Dockerfile构build一个Rails应用程序容器: $ cat Dockerfile FROM ruby:2.2 MAINTAINER Luca G. Soave <luca.soave@gmail.com> RUN apt-get update && apt-get install -y nodejs –no-install-recommends && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y mysql-client postgresql-client sqlite3 –no-install-recommends && rm -rf /var/lib/apt/lists/* RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY . /usr/src/app/ RUN bundle install EXPOSE 3000 CMD ["rails", […]

下载Github使用wget / curl构build工件(发布)

目标:在Docker Build Script中下载github release tar.gz,以便发布文件可以用于docker镜像。 我不希望下载完整的源代码,我可以使用标签通过存档path下载,而是作为发行版的一部分的构build工件。 要注意:这是从私人存储库下载,这就是为什么我试图发送我的github_token当前命令的一部分。 问题:我无法使用wget下载github发行版tar.gz。 wget –header="Authorization: token <GITHUB_TOKEN>" –output-document=<FILENAME>.tar.gz https://github.com/<USER>/<REPO>/releases/download/<TAG>/<FILENAME>.tar.gz 这是返回以下错误: –2014-12-02 16:19:25– https://github.com/<USER>/<REPO>/releases/download/<TAG>/<FILENAME>.tar.gz Resolving github.com (github.com)… 192.30.252.131, 192.30.252.131 Connecting to github.com (github.com)|192.30.252.131|:443… connected. HTTP request sent, awaiting response… 404 Not Found 2014-12-02 16:19:25 ERROR 404: Not Found. 值得注意的是,我并不反对使用curl进行下载,或者在必要时使用其他解决scheme。