Der Plankann nicht in Docker MySQL Container Tomcat Container verbinden
ich meine Tomcatbediener meiner MySQL-Server in der Lage sein verbinden wollen beide in getrennten Behältern.
Das Problem
Tomcat kann keine Verbindung zu MySQL
ich einige Details aus dem wordpress tutorial verwendet, um über eine Verbindung mit dem MySQL-Container einrichten und erstellt den Link zum MySQL.
Obwohl der Tomcat und mysql gerade gut laufen, kann ich Tomcat nicht scheinen, um sich mit MySQL verbinden zu können, die Einstellungen funktionieren auf meinem lokalen Rechner völlig in Ordnung.
Ich habe versucht, --net: "host"
auch zu verwenden, obwohl das nicht mit Tomcat funktioniert, da es einen schweren Fehler wirft.
Vorherige Antworten
I noticed on this post a load möglicher Korrekturen für den Fehler, obwohl ich nicht glaube, irgendetwas davon auf mein Problem würde übersetzen, wie ich glaube, das ist ein Problem Docker kein Host ein.
Docker-compose.yml
web:
image: tomcat:7.0
container_name: tomcat-container
ports:
- "80:8080"
hostname: docker-tomcat
volumes:
- /home/webapps:/usr/local/tomcat/webapps
links:
- db
db:
image: mysql
container_name: mysql-container
environment:
MYSQL_ROOT_PASSWORD: Mysqlpassword1
MYSQL_DATABASE: tracker
volumes:
- /home/mysqlDB:/var/lib/mysql
Das ist mein Context.xml from tomcat.
<Context>
<Resource
name="jdbc/tracker" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
url="jdbc:mysql://localhost:3306/tracker?useSSL=false"
driverClassName="com.mysql.jdbc.Driver"
username="root" password="mysqladmin1"
/>
<Resource
name="jdbc/jenkins" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
url="jdbc:mysql://localhost:3306/jenkins?useSSL=false"
driverClassName="com.mysql.jdbc.Driver"
username="root" password="mysqladmin1"
/>
</Context>
Der Fehlercode.
Ist es die folgende Netzwerkkonfiguration auf der gleichen Einrückungsebene hinzufügen möglich etwas wie '- db: localhost' zu tun, damit ich es nicht von den Entwicklungseinstellungen zu den Aufstellungseinstellungen ändern muss? Sonst vielen Dank, ich werde es in Kürze versuchen. – jackdh
Ich versuche nie, localhost zu verwenden. Ich denke, localhost ist ein Schlüsselwort. Du kannst versuchen, vielleicht funktioniert localhost, aber ich denke, du solltest nicht. – Thibaut
In der Tat, ich glaube, Sie immer noch „my-mysql-Server“ in Ihrem Docker und auf Ihrem Computer, und ändern Sie auf Ihrem Computer verwenden sollen, um diesen Eintrag zu Ihrem lokalen dns (/ etc/hosts) hinzufügen – Thibaut