docker-compose 启动mysql、mongodb

docker-compose.yaml

version: "3"
services:
	mysql:
        image: mysql:5.7
        container_name: mysql_test
        environment:
            MYSQL_ROOT_PASSWORD: 123456
            MYSQL_USER: test
            MYSQL_PASSWORD: 123456
        ports:
            - 3306:3306
        volumes:
            - mysqlvolume:/var/lib/mysql
        
        networks:
            extnetwork:
                ipv4_address: 172.30.0.2
            
        command: docker-entrypoint.sh mysqld
        privileged: true
        restart: always

	mongo:
        image: mongo:3.2.21
        container_name: mongo_test
        hostname: mongo
        environment:
             MONGO_INITDB_ROOT_USERNAME: root
             MONGO_INITDB_ROOT_PASSWORD: test
        ports:
            - 27056:27017
            - 
        networks:
            extnetwork:
                ipv4_address: 172.30.0.3
        
        volumes:
            - /data/DRBRAIN_online_test/DrBrain3/Docker/docker-compose/local/mongo/db:/data/db	# 此处为了让数据持久化
        privileged: true
        restart: always



volumes:
    mysqlvolume:
        external: true
        
networks: 
    extnetwork: 
        ipam: 
            config: 
            - subnet: 172.30.0.0/16

运行docker-compose

docker-compose up -d

本机进行链接(django示例

mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '172.17.0.1',  # 数据库主机
        'PORT': 3306,  # 数据库端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': '123456',  # 数据库用户密码
        'NAME': 'test',  # 数据库名字
       
    }
}

mpongodb

import mongoengine

INSTALLED_APPS = [
	···
	'mongoengine',
]

# mongodb相关配置
MONGO_USER='root'
MONGO_PWD='test'
MONGO_IP='172.0.0.1'
MONGO_PORT=27056

MONGO_CONN = mongoengine.connect(
    db='test',#需要进行操作的数据库名称
    alias='default',#必须定义一个default数据库
    host=MONGO_IP,
    port=MONGO_PORT,
    username=MONGO_USER,
    password=MONGO_PWD,
    authentication_source="admin",#进行身份认证的数据库
)

停止容器(mysq And mongo)

docker-compose down
Docker是一种容器化解决方案,Docker Compose可以简化多个容器的管理部署流程。Nacos是一个用于服务发现、配置管理动态DNS服务的开源平台。Node.js是一个基于JavaScript的开源、跨平台的运行时环境,用于构建可扩展的网络应用程序。MongoDB是一个高性能、文档型NoSQL数据库,适用于处理大量的结构化非结构化数据。MySQL是一个开源的关系型数据库管理系统,用于存储管理结构化数据。Redis是一个基于内存的高性能键值存储系统,用于缓存数据持久化。Seata是一个开源的分布式事务解决方案,用于保证分布式系统中的数据一致性。 通过Docker Compose,我们可以轻松地将这些不同的组件服务以容器化的方式部署在一台或多台服务器上。我们可以使用Docker Compose的配置文件定义每个服务的镜像、端口映射、环境变量等设置。在这个场景中,我们可以将Nacos、Node.js、MongoDBMySQL、RedisSeata分别作为独立的服务进行定义。 使用Docker Compose可以简化部署过程,只需运行一个命令即可启动整个应用程序的容器群组。Docker会自动拉取部署所需的镜像,启动容器,并通过网络连接各个服务。Nacos可以作为服务发现配置中心,用于管理注册各个服务的地址配置信息。Node.js可以作为应用程序的后端逻辑进行开发,通过Nacos来发现调用各个后端服务。MongoDB作为主要的数据存储,MySQLRedis可以作为辅助数据存储缓存。Seata可以用于管理控制分布式事务,确保数据一致性。 总之,使用Docker Compose可以方便地将Nacos、Node.js、MongoDBMySQL、RedisSeata等组件集成在一起,并通过容器化的方式进行部署。这样做可以极大地简化应用程序的开发部署过程,并提供高度可扩展的架构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值