关于 Dockerfile #
请注意 Hysteria 的 Docker 镜像基于 alpine 系统,如果在容器里运行一些依赖于 glibc 的自定义程序可能会失败。
默认情况下容器内安装了 bash
用于调试目的,安装的 tzdata
用于提供容器的时区信息;
为了保证 ACME 等连其他网站时 SSL 证书信任还安装了 ca-certificates
;除此之外容器内不包含
任何非标准 alpine 系统的其他工具。
Hysteria 二进制可执行文件默认被安装到 /usr/local/bin/hysteria
,同时容器的 ENTRYPOINT
被设置为执行 hysteria
命令;这意味着在不进行覆盖的情况下容器启动后首先将执行 hysteria
命令。
如何使用本镜像? #
标准 Docker 用户 #
可以将配置文件挂载到容器内的任何位置然后使用它。
在下面的命令中我们假设将 /root/hysteria.json
配置文件挂载为容器内的 /etc/hysteria.json
文件。
⚠️ 注意: 如果不想使用宿主机网络(--network=host
),请确保正确的映射了 Hysteria 的 UDP 端口(-p 1234:1234/udp
)。
# Please replace `/root/hysteria.json` with the actual configuration file location
docker run -dt --network=host --name hysteria \
-v /root/hysteria.json:/etc/hysteria.json \
tobyxdd/hysteria -c /etc/hysteria.json server
Docker Compose 用户 #
首先需要创建一个任意名称的目录,然后将项目内的 docker-compose.yaml 文件复制到该目录; 最后创建自己的配置文件并启动即可。
# Create dir
mkdir hysteria && cd hysteria
# Download the docker-compose example config
wget https://raw.githubusercontent.com/apernet/hysteria/master/docker-compose.yaml
# Create your config
cat <<EOF > hysteria.json
{
"listen": ":36712",
"acme": {
"domains": [
"your.domain.com"
],
"email": "[email protected]"
},
"obfs": "8ZuA2Zpqhuk8yakXvMjDqEXBwY",
"up_mbps": 100,
"down_mbps": 100
}
EOF
# Start container
docker-compose up -d