本文共 2214 字,大约阅读时间需要 7 分钟。
生产环境更新追求快速平稳,Docker-Compose 通过一个配置文件来管理多个Docker容器,在配置文件中services来定义,然后使用脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器的应用场景,实现环境的快速搭建。
1.创建asp.net core示例站点
使用vs2017创建一个Asp.net core MVC站点,引入Redis,主要是为了实现分布式缓存,实现一些演示内容。然后编写dockerfile,创建站点镜像,这些过程有很多参考资料,这里不再赘述。
2.创建docker-compose.yml文件
文件内容如下,创建了两个web站点容器,连接redis容器。 nginx对外暴露端口80,可以访问web1和web2,修改nginx配置,反向代理,分发请求到两个web应用,nginx配置参考3version: '3'services: xxx_mvc: container_name: web image: registry.cn-shenzhen.aliyuncs.com/xxx/web environment: - ASPNETCORE_ENVIRONMENT=Production expose: - 80 entrypoint: ["dotnet", "XXX.Web.Mvc.dll"] restart: always links: - redis volumes: - "./appsettings.Production.json:/app/appsettings.Production.json" xxx_mvc_2: container_name: web-2 image: registry.cn-shenzhen.aliyuncs.com/xxx/web environment: - ASPNETCORE_ENVIRONMENT=Production expose: - 80 entrypoint: ["dotnet", "XXX.Web.Mvc.dll"] restart: always links: - redis volumes: - "./appsettings.Production.json:/app/appsettings.Production.json" nginx: container_name:xxx-nginx image: nginx ports: - "8080:80" links: - xxx_mvc:web1 - xxx_mvc_2:web2 restart: always volumes: - "./nginx-about/nginx.conf:/etc/nginx/nginx.conf:ro" redis: image: redis restart: always expose: - 6379
3.Nginx配置文件
upstream web{ ip_hash; server web1:80; #1号 server web2:80; #2号 }server { listen 80; server_name example.com *.example.com; location / { proxy_pass http://web; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}
4.执行docker-compose up 命令
连接服务器,新建目录上传相关文件后,在目录中执行docker-compose up ,命令成功将自动完成包括服务的创建和启动, 顺利的话,访问 就可以看到站点页面了。祝好运:)
转载地址:http://xadxl.baihongyu.com/