docker compose 启动各类服务

docker compose 启动各类服务

月光魔力鸭

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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
通过registry 自建 dockerhub
mysql主从复制简单模式,一主一从。
ubuntu 配置nginx反向代理,这里简单记录下,后续再复习..
chrome 如何查看placeholder样式以及其他伪类样式
写到这里,基本上就完成了我之前一篇文章中写的,我要做一个自己的图床的小程序了。在最初我要做图床的时候,发现在谷歌扩展程序上一无所知,所以才开始学习的这个,到这一步,至少能勉强能跑通自己的小程序了。
一直有跑着puppeteer在做pdf的生成,可以今天突然发现一个问题:预览与打印生成的PDF不一致,猜测可能是边距导致的,应该是没设置好... 然后当我在本地尝试的时候也发现了这个问题..要么是字符,要么是版本
最近有一个任务一直在占满cpu, 总是会让我的服务器宕机,可是还得跑,想来想去想到了docker,印象中可以对cpu进行限制,这里简单记录下过程。
BUG 报错Tainted canvases may not be exported 。 在通过canvas 调用 toDataURL的时候出现的问题。