Tag: 通信

Docker-Compose – 与“内部”Api通信。

我开发了一个Angular App,通过Nginx与UWSGI Flask Api进行通信。 目前我有3个容器(Angular [web_admin],Api [api_admin],Nginx [nginx]) 当我在我的开发机器上运行它时,通信工作正常。 angular度请求通过url: http:// localhost:5000和api响应很好,一切正常。 但是当我将它部署到我的生产服务器时,我注意到应用程序无法正常工作,因为端口5000未在我的防火墙中打开。 我的问题很简单,我如何通过内部networking调用angular容器,调用api容器,而不是从外部调用它? version: '2' services: data: build: data neo4j: image: neo4j:3.0 networks: – back volumes_from: – data ports: – "7474:7474" – "7473:7473" – "7687:7687" volumes: – /var/diariooficial/neo4j/data:/data web_admin: build: frontend/web networks: – front – back ports: – "8001:8001" depends_on: – api_admin links: – […]

Docker容器无法到达本地主机端口4444.为什么?

我容纳了一个应用程序,它是自动Seleniumtesting的testing驱动程序。 Selenium服务器(也称为Selenium Hub)在localhost:4444下的另一个Container以及Firefox节点上运行。 但我的应用程序无法达到它: Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: '10d3b5fd1010', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.0-4-amd64', java.version: '1.8.0_11 1' Driver info: driver.version: RemoteWebDriver at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:158) at de.services.impl.TestSetupFactory.getWebDriver(TestSetupFactory.java:408) at de.services.impl.TestSetupFactory.getSeleniumService(TestSetupFactory.java:279) at de.services.impl.AutomationServiceImpl.executeTests(AutomationServiceImpl.java:220) at de.start.Start.main(Start.java:25) Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:4444 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] […]

如何启用群集中的Docker容器之间的安全通信?

我有一个关于Docker Swarm中安全通信的问题。 Docs提到在经理和工作者节点之间build立一个PKI。 所以我们有两个或多个Docker引擎之间的安全通信。 那么在(worker)节点中运行任务的容器呢? 比如我们使用两个节点,一个pipe理者和一个工人节点。 为了简单起见,我们在每个节点上有一个任务(一个容器)。 他们如何可靠地沟通? 我不得不在发动机的PKI中build立一个容器的PKI吗? 有没有可能避免这个或最佳做法来做到这一点? 有没有另一种方法来安全地交换容器之间的公钥? 提前谢谢了。

两个容器与Java之间的Docker通信

我没有在任何post上find我的答案。 我在容器上使用PHP下的项目容器,工作正常。 我想链接在另一个容器上启动的Java。 我使用“java:8”图像configuration像这样: engine: build: ./docker/engine/ volumes: – ".:/home/docker:rw" – "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro" links: – "db:db" – "java:java" working_dir: "/home/docker" java: image: java:8 tty: true ports: – "999:999" 在我的dockerPHP容器(调用“引擎”),我有这个环境variables。 JAVA_1_ENV_CA_CERTIFICATES_JAVA_VERSION=20140324 JAVA_1_ENV_JAVA_DEBIAN_VERSION=8u72-b15-1~bpo8+1 JAVA_1_ENV_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 JAVA_1_ENV_JAVA_VERSION=8u72 JAVA_1_ENV_LANG=C.UTF-8 JAVA_1_NAME=/recetteetudiant_engine_1/java_1 JAVA_1_PORT=tcp://172.17.0.3:999 JAVA_1_PORT_999_TCP=tcp://172.17.0.3:999 JAVA_1_PORT_999_TCP_ADDR=172.17.0.3 JAVA_1_PORT_999_TCP_PORT=999 JAVA_1_PORT_999_TCP_PROTO=tcp JAVA_ENV_CA_CERTIFICATES_JAVA_VERSION=20140324 JAVA_ENV_JAVA_DEBIAN_VERSION=8u72-b15-1~bpo8+1 JAVA_ENV_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 JAVA_ENV_JAVA_VERSION=8u72 JAVA_ENV_LANG=C.UTF-8 JAVA_NAME=/recetteetudiant_engine_1/java JAVA_PORT=tcp://172.17.0.3:999 JAVA_PORT_999_TCP=tcp://172.17.0.3:999 JAVA_PORT_999_TCP_ADDR=172.17.0.3 JAVA_PORT_999_TCP_PORT=999 JAVA_PORT_999_TCP_PROTO=tcp RECETTEETUDIANT_JAVA_1_ENV_CA_CERTIFICATES_JAVA_VERSION=20140324 RECETTEETUDIANT_JAVA_1_ENV_JAVA_DEBIAN_VERSION=8u72-b15-1~bpo8+1 RECETTEETUDIANT_JAVA_1_ENV_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 RECETTEETUDIANT_JAVA_1_ENV_JAVA_VERSION=8u72 RECETTEETUDIANT_JAVA_1_ENV_LANG=C.UTF-8 […]

2个Docker容器之间的networking通信是如何工作的?

我有两个Docker容器。 容器A如何通过TCP与容器B进行通信? 在我的情况下:容器A运行Apache。 容器B运行PHP-FPM。 Apache需要与PHP-FPM进行交stream。