4.3 KiB
4.3 KiB
#n8n #docker #workflow
n8n Docker install
n8n Docker Compose file
cd /home/shenwei/Docker/n8n
create docker-compose.yml file
version: '3.8'
services:
n8n:
build: .
image: docker.n8n.io/n8nio/n8n
container_name: n8n
ports:
- "5678:5678" # 只绑定到本地,通过 Caddy 访问
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_PROTOCOL=https
- N8N_HOST=n8n.ishenwei.online
- WEBHOOK_URL=https://n8n.ishenwei.online/
- N8N_TRUST_PROXY=true
- N8N_SECURE_COOKIE=true # 建议设为 true,因为使用 HTTPS
- N8N_PROXY_HOPS=1
- ALL_PROXY=socks5://172.21.0.1:10808 #配置容器内网络代理
restart: unless-stopped
volumes:
n8n_data:
networks:
n8n_default:
external: true
Dockerfile
FROM n8nio/n8n:latest
USER root
# 安装 curl 和 wget
RUN apk update && apk add --no-cache curl wget
USER node
Updating Docker Compose
If you run n8n using a Docker Compose file, follow these steps to update n8n:
title: 安装 curl 和 wget
author: shenwei
tags: [docker, n8n, workflow]
---
---
title: 安装 curl 和 wget
source:
author: shenwei
published:
created:
description:
tags: [docker, n8n, workflow]
---
# Navigate to the directory containing your docker compose file
cd </path/to/your/compose/file/directory>
# Pull latest version
docker compose pull
# Stop and remove older version
docker compose down
# Start the container
docker compose up -d
Config n8n network proxy
1️⃣ 前提条件
-
V2Ray/Tuic 已安装在宿主机并正常运行。
-
V2Ray/Tuic 配置中 本地监听地址改为
0.0.0.0,端口假设为10808: 在V2rayN GUI里需要打开如下配置: !
-
Docker 网络
n8n_default已存在(由 docker-compose 自动创建即可) -
宿主机防火墙允许 Docker 网桥访问代理端口:
sudo ufw allow from 172.18.0.0/16 to any port 10808
2️⃣ Dockerfile(扩展官方 n8n 镜像,安装 curl/wget)
创建 Dockerfile:
FROM n8nio/n8n:latest
USER root
# 安装 curl 和 wget
RUN apk update && apk add --no-cache curl wget
USER node
- 保持 n8n 默认用户
node,安全性高。 - 容器内可以直接使用
curl、wget测试代理。
3️⃣ docker-compose.yml 示例
version: '3.8'
services:
n8n:
build: .
image: docker.n8n.io/n8nio/n8n
container_name: n8n
ports:
- "5678:5678" # 只绑定到本地,通过 Caddy 访问
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_PROTOCOL=https
- N8N_HOST=n8n.ishenwei.online
- WEBHOOK_URL=https://n8n.ishenwei.online/
- N8N_TRUST_PROXY=true
- N8N_SECURE_COOKIE=true # 建议设为 true,因为使用 HTTPS
- N8N_PROXY_HOPS=1
- ALL_PROXY=socks5://172.21.0.1:10808 #配置容器内网络代理
restart: unless-stopped
volumes:
n8n_data:
networks:
n8n_default:
external: true
说明:
ALL_PROXY指向宿主机 Docker 网桥 IP + Tuic SOCKS5 端口- 容器内 HTTP/HTTPS 流量和 n8n 请求都会走 SOCKS5
- 端口 5678 映射宿主机,便于访问 n8n UI
[!注意] 注意:
172.21.0.1需替换为以下命令输出的网桥 IP(Gateway)。
docker network inspect n8n_default
4️⃣ 在容器内测试科学上网
进入容器:
docker exec -it n8n /bin/sh
测试:
# 测试 IP
curl --socks5 172.18.0.1:10808 https://ifconfig.me
# 或者使用全局代理环境变量
curl https://ifconfig.me
wget -qO- https://ifconfig.me
如果返回国外 IP,说明代理生效。
5️⃣ 可选优化
- Dockerfile 内设置环境变量:可直接在镜像内定义
ALL_PROXY,启动容器无需手动设置。 - 安全防护:宿主机防火墙限制仅 Docker 网桥访问 10808,避免局域网被访问。
- 升级 n8n:定期 rebuild 镜像即可。