本文最后更新于:2026年3月20日 中午
Tip: 每天都在使用 v2rayA,我还要经常去看看 v2rayA 的官方 docker 镜像有没有更新,突然发现我可以自己打包镜像使用,这样就不用眼巴巴等着官方的镜像了,而且还可以把内核替换成 xray
1 构建 Dockerfile
本着省时间的原则,直接从项目地址下载最新编译好的二进制文件,安装时运行依赖参考了官方的 Dockerfile ,基本上每次更新的时候替换 v2raya 和 xray 的版本号就可以了。为了极致精简选择 Alpine Linux 作为底座,它基于 musl libc 和 busybox,极其轻量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| FROM alpine AS fetcher RUN apk add --no-cache curl wget unzip
ENV V2RAYA_VER=2.2.7.5 ENV XRAY_VER=26.2.6
RUN wget https://github.com/v2rayA/v2rayA/releases/download/v${V2RAYA_VER}/v2raya_linux_x64_${V2RAYA_VER} -O /v2raya && \ chmod +x /v2raya
RUN wget https://github.com/XTLS/Xray-core/releases/download/v${XRAY_VER}/Xray-linux-64.zip && \ unzip Xray-linux-64.zip -d /xray-core && \ chmod +x /xray-core/xray
FROM alpine LABEL maintainer="v2raya"
RUN apk add --no-cache iptables ip6tables ca-certificates tzdata bash
COPY --from=fetcher /v2raya /usr/local/bin/v2raya COPY --from=fetcher /xray-core/xray /usr/local/bin/xray COPY --from=fetcher /xray-core/*.dat /usr/local/share/xray/
ENV V2RAYA_V2RAY_BIN=/usr/local/bin/xray ENV V2RAYA_CONFIG=/etc/v2raya ENV V2RAYA_NFTABLES_SUPPORT=off
EXPOSE 2017
ENTRYPOINT ["/usr/local/bin/v2raya"]
|
2 构建镜像
我用的 TUN 模式,按道理来说不用创建这个文件也能做到无痛代理,但是似乎并没有生效。
1 2 3
| docker build -t my-v2raya:2.2.7.5-26.2.6 .
|
3 运行容器
因为 v2rayA 涉及修改系统路由(透明代理),所以运行报文必须带上 –privileged
1 2 3 4 5 6 7 8 9 10
| docker run -d \ --restart=always \ --privileged \ --network=host \ --name v2raya \ -e V2RAYA_ADDRESS=0.0.0.0:2017 \ -v /lib/modules:/lib/modules:ro \ -v /etc/resolv.conf:/etc/resolv.conf \ -v /etc/v2raya:/etc/v2raya \ my-v2raya:2.2.7.5-26.2.6
|