docker compose 启动各类服务

docker compose 启动各类服务

月光魔力鸭

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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
接下来,我们综合上面的配置,再加一个选项页面配置,做一个天气预报的小栗子。
之前看知乎相中了一个想法,给宝宝做一个站,上传生活的日常照片啊、视频之类的,存储肯定是在自己家里,然后做个穿透这样..开始做的时候又想着是时候接触下这些东西了,虽然公司都一点不用,但是自己没事接触下拓展下也是好的。
上一章,我们学习和了解了websocket 是什么以及初始搭建,接下来,我们继续了解,如何进行广播以及对应的私聊呢。
当我们使用web打印相关的解决方案的时候,还有不少小坑值得注意下,同时需要了解几个小技巧提升在web打印上的友好度,以下整理一些常见的小技巧
最近一直琢磨着做一个第三方统一登录的这么一个小东西,虽然网上其实也挺多的.. 不过造轮子的感觉还是很爽的。 QQ /Github 比较简单,申请下就OK 了.. 微信真不是个东西,得花钱。
写到这里,基本上就完成了我之前一篇文章中写的,我要做一个自己的图床的小程序了。在最初我要做图床的时候,发现在谷歌扩展程序上一无所知,所以才开始学习的这个,到这一步,至少能勉强能跑通自己的小程序了。
浏览网页的时候经常会有文本无法选中,无法复制的情况,这里简单说个简单的方法,不需要下载什么东西,也不用安装什么软件、插件、油猴啥的都不需要。
前几天同事抱怨说微博太费劲了... 一万多条记录,可能会把他累死,我心想.. 重复工作不都可以用程序代替么..