docker compose 启动各类服务

docker compose 启动各类服务

月光魔力鸭

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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
扩展程序中会有需要请求外部接口获取数据的时候,如果直接在JS中写的话,会跨域,但是谷歌扩展程序支持这种情况,只需要配置一下即可。
很久之前学习chrome扩展插件的时候已经做过一个了,好久没咋用,最近又跑了一个存储服务,准备在配合这个服务做个图床,以后就用这个了,之前的服务器到期忘了迁移数据都没了,这次换了服务器,在家里了,估计以后不会再做了吧,这个算是最后一个了,有啥问题就在这个进行优化了。
一直有跑着puppeteer在做pdf的生成,可以今天突然发现一个问题:预览与打印生成的PDF不一致,猜测可能是边距导致的,应该是没设置好... 然后当我在本地尝试的时候也发现了这个问题..要么是字符,要么是版本
国庆马上来临,头像已经先热起来了,为了蹭蹭热度,赶紧加班搞了一个。
整理一些相关的信息,防止后续再找不到。
与python后端进行联调,后端协议为jsonrpc ,这里简单记录下jsonrpc的通用请求函数,并附带几个栗子
小程序需要用到用户的手机号码,看了下API 以及相关的demo,基本都是服务端进行解密的,问题是需要的参数并没有用到secret,只需要 session_key / iv /encryptedData 即可,那完全可以在客户端进行处理啊。
最近有一个任务一直在占满cpu, 总是会让我的服务器宕机,可是还得跑,想来想去想到了docker,印象中可以对cpu进行限制,这里简单记录下过程。