docker-compose.yaml:html
nginx: image: nginx links: - tomcat ports: - "80:80" volumes: - /root/conf:/etc/nginx/conf.d:ro tomcat: image: tomcat:8.5 links: - mysql volumes: - /root/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml - /root/manager.xml:/usr/local/tomcat/conf/Catalina/localhost/manager.xml mysql: image: mysql volumes: - /opt/data:/var/lib/mysql - /root/codepad.sql:/docker-entrypoint-initdb.d/codepad.sql environment: - MYSQL_ROOT_PASSWORD=xxxxxx
注意tomcat的manager默認只有本機能訪問,若是須要非本機訪問的,須要配置manager.xml,否則訪問tomcat控制檯會報403,位置在:$CATALINA_BASE/conf/[enginename]/[hostname]
,內容以下:java
<Context privileged="true"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow=".*"/> </Context>
啓動docker container:mysql
docker-compose up -d
java代碼中鏈接數據庫,字符串寫法爲:nginx
url=jdbc:mysql://${MYSQL_PORT_3306_TCP_ADDR}:3306/codepad?useUnicode=true&characterEncoding=UTF-8
MYSQL_PORT_3306_TCP_ADDR是mysql container的ip地址,intellij idea 本地運行時得在run/debug窗口事先配置好.sql
參考文檔見:docker