我经历了有史以来最糟糕的时光,开始在我的域上使用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对我来说似乎很有意义,因为它安装起来...
是containeroo的罗宾(中篇文章背后的人)