docker - 绑定(bind)通过api创建的Docker容器

标签 docker docker-networking docker-api

我有一个创建 docker 容器的命令,来自 docker 容器 我想将一个端口绑定(bind)到主机

exec(`curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{ "Image": "strategy_baseline", "ExposedPorts": { "${PORT}/tcp": {} }, "HostConfig": { "Binds": ["strategies:/usr/src/app/strategies"], "NetworkMode": "titan_backend" }, "PortBindings": { "${PORT}/tcp": [{ "HostPort": "${PORT}" }]}, "Env": ["BOTNAME=${BOT_ID}", "PORT=${PORT}", "ASSETS=${ASSETS}"]}' -X POST http:/v1.4/containers/create?name=${BOT_ID}`,

所有变量都在文件中正确定义,因此不存在错误。

就目前而言,我通过 API 端点调用此命令,并且在运行 docker ps 的正确端口上正确创建了容器。输出:
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                          PORTS                                                 NAMES
ab8e28ccd50f        strategy_baseline           "docker-entrypoint.s…"   2 hours ago         Up 2 hours                      3009/tcp                                              defaultKeys

我期望将容器端口指定为 0.0.0.0:3009->3009/tcp 的内容。 .但唉,这行不通。

我知道我可以通过指定容器名称来调用容器,因此在网络中的任何其他容器中,我都可以执行 http://container_name:3009/endpoint
但理想情况下我应该能够做到:hhtp://vps_ip:3009/endpoint到目前为止我做不到。

非常感谢任何指针或帮助,在此先感谢!!

最佳答案

这个修改成功了

exec(`curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{ "Image": "strategy_baseline", "ExposedPorts": { "${PORT}/tcp": {} }, "HostConfig": { "Binds": ["strategies:/usr/src/app/strategies"], "NetworkMode": "titan_backend", "PortBindings": { "${PORT}/tcp": [{ "HostPort": "${PORT}" }]}}, "Env": ["BOTNAME=${BOT_ID}", "PORT=${PORT}", "ASSETS=${ASSETS}"]}' -X POST http:/v1.4/containers/create?name=${BOT_ID}`,

关于docker - 绑定(bind)通过api创建的Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62124849/

相关文章:

php - 如何使用php docker容器查看php日志信息?

docker - 如何配置Docker容器以使用VPN访问它们?

CentOS 7 中带有 Docker 登录的 Docker API 版本

docker - 在没有Docker守护程序的情况下调用Docker API

docker - 无法从容器内访问Docker API

clojure - 从另一个容器连接到在 Docker 容器中运行的 headless nREPL

使用redis作为 session 后端时,django docker容器无法访问redis容器

docker - 将链接docker容器与网络混合

端口绑定(bind)8080时Docker无法访问主机中的应用程序

docker - 多阶段 dockerfile 跳过阶段