设置nginix + letsencrypt或Traefik后设置新的docker容器

问题描述 投票:0回答:1

我经历了有史以来最糟糕的时光,开始在我的域上使用letsencrypt / nginix或letsencrypt / traefik建立网络。我终于设置好了。

Traefik对我来说似乎很有意义,因为在任何地方都建议这样做。为了启动它并使用我的DNS,我使用了本指南:https://medium.com/@containeroo/traefik-2-0-docker-a-simple-step-by-step-guide-e0be0c17cfa5

使用该默认指南,我设法启动了porttainer和traefik,尽管我无法访问traefik,应该在traefik.MYDOMAIN.com上。但是porttainer可在portainer.MYDOMAIN.com上工作。

这是那些的码头工人组成

traefik docker-compose

version: '3'

services:      
  traefik:
    image: traefik:v2.0
     container_name: traefik
    restart: unless-stopped
 security_opt:
  - no-new-privileges:true
networks:
  - proxy
ports:
  - 80:80
  - 443:443
volumes:
  - /etc/localtime:/etc/localtime:ro
  - /var/run/docker.sock:/var/run/docker.sock:ro
  - ./data/traefik.yml:/traefik.yml:ro
  - ./data/acme.json:/acme.json
environment:
  - [email protected]
  - CF_API_KEY=LOLKEY
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.traefik.entrypoints=http"
  - "traefik.http.routers.traefik.rule=Host(`traefik.DOMAIN.com`)"
  - "traefik.http.middlewares.traefik-auth.basicauth.users=USER:PASSWORD"
  - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
  - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
  - "traefik.http.routers.traefik-secure.entrypoints=https"
  - "traefik.http.routers.traefik-secure.rule=Host(`traefik.DOMAIN.COM`)"
  - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
  - "traefik.http.routers.traefik-secure.tls=true"
  - "traefik.http.routers.traefik-secure.tls.certresolver=cloudflare"
  - "traefik.http.routers.traefik-secure.tls.domains[0].main=DOMAIN.COM"
  - "traefik.http.routers.traefik-secure.tls.domains[0].sans=*.DOMAIN.COM"
  - "traefik.http.routers.traefik-secure.service=api@internal"

networks:   
  proxy:
    external: true

Docker为Portainer撰写

 version: '3'

 services:
  portainer:
image: portainer/portainer:latest
container_name: portainer
restart: unless-stopped
security_opt:
  - no-new-privileges:true
networks:
  - proxy
volumes:
  - /etc/localtime:/etc/localtime:ro
  - /var/run/docker.sock:/var/run/docker.sock:ro
  - ./data:/data
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.portainer.entrypoints=http"
  - "traefik.http.routers.portainer.rule=Host(`portainer.DOMAIN.COM`)"
  - "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https"
  - "traefik.http.routers.portainer.middlewares=portainer-https-redirect"
  - "traefik.http.routers.portainer-secure.entrypoints=https"
  - "traefik.http.routers.portainer-secure.rule=Host(`portainerDOMAIN.COM`)"
  - "traefik.http.routers.portainer-secure.tls=true"
  - "traefik.http.routers.portainer-secure.tls.certresolver=http"
  - "traefik.http.routers.portainer-secure.service=portainer"
  - "traefik.http.services.portainer.loadbalancer.server.port=9000"
  - "traefik.docker.network=proxy"

networks:
  proxy:
    external: true

[就像我说的那样,teaefik.DOMAIN.COM不起作用,但porttainer起作用。我尝试了很多,但是我无法获得wiki.js或mediawiki或其他几个人的支持,并且无法正常工作...我通过Porttainers界面安装了ghost,但即使复制了所有内容,也无法将其变成一个子域通过GUI从Porttainer到Ghost的环境变量。那就走吧我的下一步是尝试通过与xwiki docker-compose融合之前的两个东西来尝试xwiki。

就是这样:

version: '3'

services:
  web:
image: "xwiki:lts-mysql-tomcat"
container_name: xwiki-mysql-tomcat-web
restart: unless-stopped
security_opt:
  - no-new-privileges:true
networks:
  - proxy
volumes:
  - /etc/localtime:/etc/localtime:ro
  - /var/run/docker.sock:/var/run/docker.sock:ro
  - ./data:/data
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.xwiki.entrypoints=http"
  - "traefik.http.routers.xwiki.rule=Host(`xwiki.DOMAIN.COM`)"
  - "traefik.http.middlewares.xwiki-https-redirect.redirectscheme.scheme=https"
  - "traefik.http.routers.xwiki.middlewares=xwiki-https-redirect"
  - "traefik.http.routers.xwiki-secure.entrypoints=https"
  - "traefik.http.routers.xwiki-secure.rule=Host(`xwiki.DOMAIN.COM`)"
  - "traefik.http.routers.xwiki-secure.tls=true"
  - "traefik.http.routers.xwiki-secure.tls.certresolver=http"
  - "traefik.http.services.xwiki.loadbalancer.server.port=8080"
  - "traefik.http.routers.xwiki-secure.service=xwiki"
  - "traefik.docker.network=proxy"
    depends_on:
  - db
    environment:
  - DB_USER=xwiki
  - DB_PASSWORD=PASSWORD
  - DB_DATABASE=xwiki
  - DB_HOST=xwiki-mysql-db
volumes:
  - /etc/localtime:/etc/localtime:ro
  - /var/run/docker.sock:/var/run/docker.sock:ro
  - ./data:/data
networks:
  - proxy
  db:
image: "mysql:5.7"
container_name: xwiki-mysql-db
volumes:
  - ./xwiki.cnf:/etc/mysql/conf.d/xwiki.cnf
  - mysql-data:/var/lib/mysql
  - ./init.sql:/docker-entrypoint-initdb.d/init.sql
environment:
  - MYSQL_ROOT_PASSWORD=xwiki
  - MYSQL_USER=xwiki
  - MYSQL_PASSWORD=PASSWORD
  - MYSQL_DATABASE=xwiki

volumes:
  mysql-data: {}
  xwiki-data: {}



networks:
  proxy:
   external: true

此开始!!我非常兴奋。但随后失败并显示500错误。这是该错误:https://justpaste.it/3ixzf

[基本上,我只是想使用traefik作为模板来docker-组成各种应用程序进行测试,但要理解我缺少的变量确实很困难。我花了整整12个小时的时间进行磨练并试图理解所有这些内容,但是有太多不同的指南和相互矛盾的建议,traefik指南对我的情况无济于事...希望有帮助!


通过过多的信息,这是我想要/已经完成/知道的:

我的设置是常规的家庭Internet连接,服务器是Lenovo Yoga 710 i5。我可以根据需要转发端口,也可以根据需要转发DMZ(我不建议这样做或确保安全)。我可以选择使用ubuntu或启用hyper-V的Windows 10(如果您认为在Windows中会更简单,我可以安装它!)。现在我可以使用Ubuntu 18。

我的域名提供商是一个域名便宜的域名,已经过DNSflare认证。直到几周前我开始处理所有这些事情,我对服务器或托管一无所知。

我已经设法在这里获得帮助,以便按照本指南的要求运行安全的nginx,但我仍然对一切的运行方式感到困惑。而且我无法让子域完美运行,所以我遵循了linuxserver.io指南,一直运行到最后,然后我就像“但是...如何添加更多内容”?]

我知道它涉及到修改后的docker-composes来适应我自己的情况,但是我需要一个通用的模板(我很乐意一遍又一遍地学习以便学习),但是我需要知道模板权利。不幸的是,那里有十亿个模板。

所以我认为我会尝试traefik,您会看到上面的结果。

[我知道我的问题主要是与网络有关,我认为我对-p ##:##命令感到困惑,尤其是当Wikibase启动4(!)单独的容器时,wiki.js需要一个数据库,而xwiki似乎不太复杂,但仍然坏了(如上面的链接所示)。

[我认为我需要做的是拥有一个数据库应用程序(可能是mariaDB?支持p井绘图),该应用程序在本地运行,然后让各种docker应用程序使用该数据库。因此,我启动了一个数据库容器(或者也许只是sudo apt get install mariadb?),我知道docker-compose db:(bla bla)应该设置环境因素,以便应用程序可以访问它。

但是traefik或nginx会妨碍吗?我会发射那些吗?我知道traefik就像“在本地发布!” Nginix更加注重实用,但是...

我经历了有史以来最糟糕的时光,开始在我的域上使用letsencrypt / nginix或letsencrypt / traefik建立网络。我终于设置好了。 Traefik对我来说似乎很有意义,因为它安装起来...

docker nginx mediawiki traefik
1个回答
0
投票

是containeroo的罗宾(中篇文章背后的人)

© www.soinside.com 2019 - 2024. All rights reserved.