• docker 开发环境搭建


    服务搭建

    1.redis 2.mysql 3.ribbitmq 4.mongodb 5. mongo-express 6.portainer

    注意初始脚本必须重新构建的时候才生效需要1.删除已有镜像 2.删除data目录

    1. version: '3'
    2. services:
    3. redis:
    4. image: "redis:6.0"
    5. # 容器名(以后的控制都通过这个)
    6. container_name: redis
    7. hostname: redis
    8. restart: always
    9. privileged: true
    10. ports:
    11. - 6378:6379
    12. environment:
    13. TZ: Asia/Shanghai
    14. volumes:
    15. - ./data/redis/:/data
    16. - ./conf/redis/redis.conf:/etc/redis/redis.conf
    17. - ./logs/redis/:/logs
    18. command: ["redis-server","/etc/redis/redis.conf"]
    19. mysql:
    20. image: mysql:5.7
    21. # 容器名(以后的控制都通过这个)
    22. container_name: mysql
    23. hostname: mysql
    24. # 重启策略
    25. restart: always
    26. ports:
    27. - "3306:3306"
    28. volumes:
    29. # 挂挂载配置文件
    30. - ./conf/mysql:/etc/mysql/conf.d
    31. # 挂载日志
    32. - ./logs/mysql/:/logs
    33. # 挂载数据
    34. - ./data/mysql:/var/lib/mysql
    35. - ./init/mysql/:/docker-entrypoint-initdb.d/
    36. command: [
    37. 'mysqld',
    38. '--innodb-buffer-pool-size=80M',
    39. '--character-set-server=utf8mb4',
    40. '--collation-server=utf8mb4_unicode_ci',
    41. '--default-time-zone=+8:00',
    42. '--lower-case-table-names=1'
    43. ]
    44. environment:
    45. # root 密码
    46. MYSQL_ROOT_PASSWORD: 123456
    47. #rabbitmq
    48. rabbitmq:
    49. #mq依赖的镜像
    50. image: rabbitmq:3-management
    51. container_name: rabbitmq
    52. hostname: rabbitmq
    53. # 重启策略
    54. restart: always
    55. ports:
    56. - 15672:15672
    57. - 5672:5672
    58. volumes:
    59. - ./data/rabbit:/var/lib/rabbitmq
    60. mongodb:
    61. image: mongo:4.4
    62. container_name: mongodb
    63. hostname: mongodb
    64. restart: always
    65. networks:
    66. - networkdb
    67. command: --auth
    68. environment:
    69. # 时区上海
    70. TZ: Asia/Shanghai
    71. MONGO_INITDB_ROOT_USERNAME: admin
    72. MONGO_INITDB_ROOT_PASSWORD: 123456
    73. MONGO_INITDB_DATABASE: collector
    74. MONGO_USERNAME: mongodb
    75. MONGO_PASSWORD: mongodb
    76. volumes:
    77. - ./data/mongo/:/data/db
    78. - ./init/mongo/:/docker-entrypoint-initdb.d/
    79. - ./conf/mongo/mongod.conf:/etc/mongo/mongod.conf
    80. ports:
    81. - 27017:27017
    82. mongo-express:
    83. image: mongo-express
    84. container_name: mongo-express
    85. hostname: mongo-express
    86. restart: always
    87. networks:
    88. - networkdb
    89. ports:
    90. - 8081:8081
    91. environment:
    92. ME_CONFIG_MONGODB_ADMINUSERNAME: admin
    93. ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
    94. ME_CONFIG_MONGODB_URL: mongodb://admin:123456@mongodb:27017/
    95. #docker监控
    96. portainer:
    97. image: portainer/portainer
    98. container_name: portainer
    99. volumes:
    100. - /var/run/docker.sock:/var/run/docker.sock
    101. - ./data/portainer/:/data
    102. ports:
    103. - "8000:8000"
    104. - "9000:9000"
    105. networks:
    106. networkdb:

    config:软件配置目录

    init:软件初始目录

    data:软件数据目录

    logs:软件日志目录

    mysql初始脚本:创建初始用户(非root)并授权

    1. use mysql;
    2. create user 'collector'@'%' IDENTIFIED by '!QAZ@WSX3edc';
    3. grant all on *.* to collector@'%';

    mongo初始脚本:注意use数据库不能用环境变量代替,代替就生成用户失败 不知道为什么?

    1. #!/bin/bash
    2. echo "jjjjjjjjjjjjjjjjjjjjjjjjjjjjj"
    3. echo "'$MONGO_USERNAME'"
    4. echo '$MONGO_PASSWORD'
    5. echo '$MONGO_INITDB_DATABASE'
    6. mongo <<EOF
    7. use admin
    8. db.createUser({ user:'$MONGO_INITDB_ROOT_USERNAME',pwd:'$MONGO_INITDB_ROOT_PASSWORD',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
    9. db.auth('$MONGO_INITDB_ROOT_USERNAME', '$MONGO_INITDB_ROOT_PASSWORD');
    10. use test;
    11. db.createUser(
    12. {
    13. user: 'mongo',
    14. pwd: 'mongo',
    15. roles: [ { role: "readWrite", db: 'test' } ]
    16. }
    17. );
    18. use collector;
    19. db.createUser(
    20. {
    21. user: '$MONGO_USERNAME',
    22. pwd: '$MONGO_PASSWORD',
    23. roles: [ { role: "readWrite", db: '$MONGO_INITDB_DATABASE' } ]
    24. }
    25. );
    26. EOF

  • 相关阅读:
    后端API接口性能优化的10种方案,真有用!
    java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter【解决办法】
    四化智造MES(WEB)与金蝶云星空对接集成原材料/标准件采购查询(待采购)连通采购订单新增(原材料采购-采购订单(变更)-TEST)
    CDH6.3.2 详细介绍及使用
    算法题Day71
    AndroidStudio编译很慢问题解决
    Altair:Python数据可视化库的魅力之旅
    警方打击了大规模网络钓鱼提供商BulletProftLink
    台式电脑怎么格式化重装系统
    计算机组成原理---第五章中央处理器---指令执行过程
  • 原文地址:https://blog.csdn.net/three_stand/article/details/125633585