docker-compose简单使用

docker-compose.yaml:

nginx:
    image: nginx
    links:
        - tomcat
        - ghost
    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/xx.sql:/docker-entrypoint-initdb.d/xx.sql
    environment:
        - MYSQL_ROOT_PASSWORD=xxxx
ghost:
    image: ghost
    volumes:
        - /root/blog:/var/lib/ghost
    environment:
        - NODE_ENV=production

注意tomcat的manager默认只有本机能访问,如果需要非本机访问的,需要配置manager.xml,不然访问tomcat控制台会报403,位置在:$CATALINA_BASE/conf/[enginename]/[hostname]
,内容如下:

<Context privileged="true">
         <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                allow=".*"/>
</Context>

启动docker container:

docker-compose up -d

java代码中连接数据库,字符串写法为:

url=jdbc:mysql://${MYSQL_PORT_3306_TCP_ADDR}:3306/codepad?useUnicode=true&characterEncoding=UTF-8

MYSQL_PORT_3306_TCP_ADDR是mysql container的ip地址,由mysql docker container生成,intellij idea 本地运行时得在run/debug窗口事先配置好.

参考文档见:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容