【问题标题】:Is it possible to use docker remote API in the same fashion as regular API?是否可以以与常规 API 相同的方式使用 docker 远程 API?
【发布时间】:2016-10-28 14:38:25
【问题描述】:

我想将本地脚本文件复制到远程主机并运行其中一个。在本地主机上,我会使用这些命令:

docker run -d python tail -f /dev/null
docker cp ./ <id>:/usr/local/bin/
docker exec <id> python /usr/local/bin/script.py

我想添加一个额外的命令来指定远程机器的 IP 和端口

官方网站suggests使用curl。有一个list 的 docker 客户端,但它们都应该以编程方式使用。

我更喜欢从控制台运行这些命令,或者将它们放入.bat 文件中。为什么 curl/ 使用某种语言设置项目以运行三个命令会带来额外的复杂性? docker-toolbox 是否允许在远程主机上执行命令?

【问题讨论】:

    标签: docker docker-toolbox


    【解决方案1】:

    docker 命令行可以像本地引擎一样处理远程 Docker 引擎 - 它使用环境变量来指定它应该连接到的 API 的详细信息。

    docker-machine 使用 env 命令将其巧妙地包装起来,但您可以通过设置这些变量使用常规的 docker CLI 来完成:

    DOCKER_HOST=tcp://192.168.99.101:2376
    DOCKER_CERT_PATH=/Users/nathanleclaire/.docker/machines/.client
    DOCKER_TLS_VERIFY=1
    

    使用您自己的远程主机地址和证书。

    默认情况下,Docker 引擎 API 不会暴露给远程客户端,因此您需要对其进行配置 - Using TLS with the Docker Engine 向您展示了如何配置。

    【讨论】:

    • 我在服务器上设置它没有加密DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'virtuallyghetto.com/2014/07/…在windows中,我创建了一个环境变量DOCKER_HOST,将它设置为tcp://my.ip.address:port并重新启动工具箱。在启动时,它会打印“docker 配置为使用 IP 为 192.168.99.100 的默认机器”。命令在本地实例上执行。
    • 工具箱终端在自己的用户会话中运行,因此您要么需要设置系统变量,要么在工具箱终端内设置环境变量。
    猜你喜欢
    • 2019-04-16
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多