简介
笔记将记录如何使用docker配置traefik,代理一个gitea,自动申请tls证书,cloudflare反代80,443端口一系列实操。
daemon.json配置如下,主要是为了IPv6能访问,以及更改了主存储位置,配置了docker代理。
{"data-root": "/storage/docker","ipv6": true,"fixed-cidr-v6": "fc00:0:0:1::/64","experimental": true,"ip6tables": true,"registry-mirrors": ["https://*******.top"] }
启动traefik
默认compose.yaml如下
services:reverse-proxy:# The official v3 Traefik docker imageimage: traefik:v3.3# Enables the web UI and tells Traefik to listen to dockercommand: # 测试环境,启用api- "--api.insecure=true"# 启用监听docker- "--providers.docker"# 入口点 HTTP 80- "--entryPoints.web.address=:80"# 入口点 HTTPS 443- "--entryPoints.websecure.address=:443"ports:# 突破家庭宽带,用18080- "18080:80"# The Web UI (enabled by --api.insecure=true)- "8080:8080"# 突破家庭宽带,用18443- "18443:443"volumes:# 监听docker映射- "/var/run/docker.sock:/var/run/docker.sock"- "./letsencrypt:/letsencrypt" networks:#未设置网络时,使用默认网络default:#自定义默认网络名 为了和别的容器互联互通name: mynet#启用ipv6enable_ipv6: true
启动gitea
默认compose.yaml如下,我在玩客云上跑gitea,所以自己编译了arm的镜像,你们可以用官方镜像。
services:server:image: jackadam/gitea-arm:1.23.1container_name: giteaenvironment:- USER_UID=1000- USER_GID=1000restart: alwaysports:- "3000:3000"- "222:22"volumes:- ./data:/data- /etc/timezone:/etc/timezone:ro- /etc/localtime:/etc/localtime:ro networks:#未设置网络时,使用默认网络default:#自定义默认网络名name: mynet#启用ipv6enable_ipv6: true
http://ip:3000能访问就可以了。
互联互通
networks:default:name: mynetenable_ipv6: true
每个compose.yaml都配置了这个。
这是在compose文件中的所有服务,启动的容器,都使用默认网络mynet,并启动IPv6。
如果不配置这个,那么docker compose会为每个compose文件添加一个默认网络,名字是不一样的,容器就不能跨compose文件互通了。