从Docker容器连接到外部主机

时间:2019-02-18 09:02:32

标签: docker docker-compose database-connection

我的本​​地环境与具有BDD的计算机连接。当我ping这台机器的IP时,我会回应。

Standard

当我用docker compose出售容器时,该容器与该计算机没有连接。如果我使用docker exec -it my-container sh进入容器,而我ping进入DBB计算机,则无响应。

Standard

我在Windows 10中安装了docker,我的Docker Compose文件如下所示:

version: '3.1'

services:
  tomcat:
    image: 'tomcat:7.0.91-jre8-alpine'
    restart: always
    volumes:
        - ./warfiles:/home
        - ./conf:/usr/local/tomcat/conf/Catalina/localhost 
        - ./context.xml:/usr/local/tomcat/conf/context.xml
        - ./ik-report-config:/ik-report-conf
        - ./lib/postgresql-9.3-1102-jdbc4.jar:/usr/local/tomcat/lib/postgresql-9.3-1102-jdbc4.jar
    ports:
        - 8070:8080
        - 8000:8000
    environment:
     - REPORT_ENGINE_HOME=/ik-report-conf

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可能应该使用$conn = new PDO("mysql:host=$servername; dbname=$dbname", $username, $password);

来自Docker Network Guide

  

主机:对于独立容器,请删除主机之间的网络隔离   容器和Docker主机,并直接使用主机的网络。

答案 1 :(得分:0)

我必须使用的是network_mode: bridge