docker compose 启动各类服务

docker compose 启动各类服务

月光魔力鸭

2023-05-27 11:51 阅读 320 喜欢 0

最近感觉docker挺好用的,由于测试服务器经常重装,这里先记录下compose文件,后边重装直接复制就行啦。

由于服务器只针对这一个web服务,这里的network_mode使用的host .

nginx

docker-compose.yml

version: "3.7"
services:
  nginx:
    image: nginx:stable-perl
    container_name: nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    network_mode: host

redis

docker-compose.yml

version: "3.7"
services:
  redis:
    image: redis:6-alpine3.17
    container_name: myredis
    restart: always
    privileged: true
    command: redis-server --appendonly yes
    network_mode: host
    
    

mysql

docker-compose.yml

version: "3.7"
services:
  mysql:
    image: mysql:5.7
    container_name: mymysql
    restart: always
    privileged: true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./update:/data/update
    environment:
      - "MYSQL_ROOT_PASSWORD=root"
    command:
      --default-time-zone="+8:00"
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --max_connections=1000
      --innodb_lock_wait_timeout=500
    network_mode: host

后边根据业务创建数据库,如果确定web只有这一个可以直接通过以下创建:

volumes:
      - ./init:/docker-entrypoint-initdb.d/
environment:
      - "MYSQL_ROOT_PASSWORD=root"
      - "MYSQL_DATABASE=testdb"
      - "TZ=Asia/Shanghai"

docker compose 合并

version: "3.7"
services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    privileged: true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlupdate:/data/update
    environment:
      - "MYSQL_ROOT_PASSWORD=root"
    command:
      --default-time-zone="+8:00"
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --max_connections=1000
      --innodb_lock_wait_timeout=500
  redis:
    image: redis:6-alpine3.17
    container_name: redis
    restart: always
    privileged: true
    expose:
      - 6379
    command: redis-server --appendonly yes
  ftp:
    image: fauria/vsftpd:latest
    container_name: vsftp
    restart: always
    ports:
      - "21:21"
      - "20:20"
      - 9900-9999:9900-9999
    expose:
      - 21
    volumes:
      - ./ftp:/home/vsftpd/testabc
    environment:
      - "FTP_USER=testabc"
      - "FTP_PASS=123456"
      - "FTP_MIN_PORT=9900"
      - "FTP_MAX_PORT=9999"
    networks:
      - server-web
  tomcat:
    image: tomcat:9.0
    container_name: tomcat
    restart: always
    ports:
      - 8080:8080
    networks:
      - server-web
  nginx:
    image: nginx:1.9.5
    container_name: nginx
    restart: always
    privileged: true
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./ftp:/data/ftp
    networks:
      - server-web
networks:
  server-web:
    driver: bridge

注意 networks 统一使用一个,这样相互之间可以通信访问。

转载请注明出处: https://chrunlee.cn/article/docker-web-service-yml.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
简单记录下dockerfile 以及compose配置
整理一些相关的信息,防止后续再找不到。
在程序中,会有需要后台一直运行的场景。这一节我们来做一个监控某网站的运行状态,如果没有运行,则改变当前的图标。
最近看某站壁纸挺好看的,抓了几百张放本地...可总不能每天手动去换吧,就做了一个随机更换的小工具。
上一张中已经完成了比较简易的3D全景浏览,但是...这是写死在xml中的,对于我们实际的项目,这种情况是不可能适应的。所以,来了解下如何动态加载xml已经设置对应的热点。
最近在做直播,是用的webrtc,然后找的免费的starrtc ,当然,可能由于种种原因吧.. 用起来并没有特别顺畅,后续还希望能够深入这部分,从现在开始学习..当然,websocket 是顺带的,可以用来发消息什么的肯定也是要用到的。
近期有添加数学公式的需求,找来找去,最后还是选择了最简单的。tinymce+kityformula
最开始其实只是网站的一个小改版,导致的需要发送邮件的功能,本身功能不复杂,不做工具的话,几行代码应该就可以搞定的.. 不过后来想想,这个功能应该还是有一定的小需求的,就做成了工具。