首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker -将相同的网络和数据库用于另一个应用程序?

Docker -将相同的网络和数据库用于另一个应用程序?
EN

Stack Overflow用户
提问于 2019-08-23 23:19:55
回答 1查看 26关注 0票数 0

我已经在docker上为应用程序设置了一个开发环境,在该环境中,我使用特定的网络将应用程序连接到数据库

代码语言:javascript
复制
version: '3'

services:
    app:
        image: appimg
        container_name: appwww
        build:
            context: .
            dockerfile: docker/Dockerfile
        volumes:
            - .:/var/www/html
        ports:
            - 9000:80
        depends_on:
            - mysql
        network:
            - appnet


    mysql:
        image: mysql:5.7
        container_name: appdb
        environment:
            MYSQL_DATABASE: homestead
            MYSQL_ROOT_PASSWORD: root
            MYSQL_USERNAME: homestead
            MYSQL_PASSWORD: password
        volumes:
            - dbdata:/var/lib/mysql
        ports:
            - 3306:3306
        network:
            - appnet

volumes:
    dbdata:
        driver: 'local'
network:
    - appnet

我的问题是,我可以使用相同的网络从另一个应用程序连接到相同的数据库吗?也许是这样的东西?

代码语言:javascript
复制
version: '3'

services:
    anotherapp:
        image: anotherappimg
        container_name: anotherappwww
        build:
            context: .
            dockerfile: docker/Dockerfile
        volumes:
            - .:/var/www/html
        ports:
            - 9000:80
        depends_on:
            - mysql
        network:
            - appnet


    mysql:
        image: mysql:5.7
        container_name: anotherappdb
        environment:
            MYSQL_DATABASE: homestead
            MYSQL_ROOT_PASSWORD: root
            MYSQL_USERNAME: homestead
            MYSQL_PASSWORD: password
        volumes:
            - dbdata:/var/lib/mysql
        ports:
            - 3306:3306
        network:
            - appnet

volumes:
    dbdata:
        driver: 'local'
network:
    - appnet
EN

回答 1

Stack Overflow用户

发布于 2019-08-24 00:11:37

是的,这是可能的,你可以像这样设置:

docker-compose.base.yml:

代码语言:javascript
复制
version: '3'

services:
    mysql:
        image: mysql:5.7
        container_name: anotherappdb
        environment:
            MYSQL_DATABASE: homestead
            MYSQL_ROOT_PASSWORD: root
            MYSQL_USERNAME: homestead
            MYSQL_PASSWORD: password
        volumes:
            - dbdata:/var/lib/mysql
        ports:
            - 3306:3306
        network:
            - appnet
volumes:
    dbdata:
        driver: 'local'
network:
    - appnet

docker-compose.app.yml:

代码语言:javascript
复制
version: '3'
services:
    app:
        image: appimg
        container_name: appwww
        build:
            context: .
            dockerfile: docker/Dockerfile
        volumes:
            - .:/var/www/html
        ports:
            - 9000:80
        depends_on:
            - mysql
        network:
            - appnet

docker-compose.anto治疗.yml:

代码语言:javascript
复制
version: '3'

services:
    anotherapp:
        image: anotherappimg
        container_name: anotherappwww
        build:
            context: .
            dockerfile: docker/Dockerfile
        volumes:
            - .:/var/www/html
        ports:
            - 9000:1080
        depends_on:
            - mysql
        network:
            - appnet

然后,您可以使用以下命令开始所有操作:

代码语言:javascript
复制
docker-compose -f docker-compose.base.yml -f docker-compose.app.yml -f docker-compose.anotherapp.yml up -d

如果你只想启动一个治疗,你可以从前面的命令中删除-f docker-compose.app.yml

注意:我已经更改了另一种疗法的端口映射,因为如果同时启动,它们将与应用程序冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57629075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档