docker compose 启动各类服务

docker compose 启动各类服务

月光魔力鸭

2023-05-27 11:51 阅读 208 喜欢 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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
写到这里,基本上就完成了我之前一篇文章中写的,我要做一个自己的图床的小程序了。在最初我要做图床的时候,发现在谷歌扩展程序上一无所知,所以才开始学习的这个,到这一步,至少能勉强能跑通自己的小程序了。
最近有一个任务一直在占满cpu, 总是会让我的服务器宕机,可是还得跑,想来想去想到了docker,印象中可以对cpu进行限制,这里简单记录下过程。
ffmpeg 采集摄像头进行推流,然后播放,实现直播。
接下来,我们综合上面的配置,再加一个选项页面配置,做一个天气预报的小栗子。
最近一段时间想着做个资源网站,奈何没数据,准备从几个相关的站点上抓一些数据,数据量每个站点都在几千万左右,这里简单总结下最近一段时间在做的测试。
本来是想做一个图床,然后在chrome扩展中添加上,但是发现chrome的扩展有点毫无头绪,只能从头练习,从头学了。
小程序需要用到用户的手机号码,看了下API 以及相关的demo,基本都是服务端进行解密的,问题是需要的参数并没有用到secret,只需要 session_key / iv /encryptedData 即可,那完全可以在客户端进行处理啊。
BUG 报错Tainted canvases may not be exported 。 在通过canvas 调用 toDataURL的时候出现的问题。