1. 安装 Docker
- 如果还没有安装 Docker,按照官方文档的说明进行安装。
2.拉取 Clash 镜像
-
在终端中执行以下命令拉取 Clash 镜像:
docker pull dreamacro/clash
-
这会从 Docker Hub 上拉取最新版本的 Clash 镜像。
3. 创建并运行 Clash 容器
-
运行以下命令创建并运行 Clash 容器:
docker run -d --name clash_main -p 7890:7890 -p 7891:7891 -v ./config:/root/.config/clash dreamacro/clash
-
在这个例子中,我们将 Clash 容器命名为
my-clash
,并将容器内的7890
和7891
端口映射到主机上的同名端口。 -
-v
参数用于将本地的 Clash 配置文件挂载到容器中,以便持久化保存 Clash 的配置信息。 -
./config
是本地存放 Clash 配置文件的路径,请将其替换为自己本地的实际路径。
-
加载订阅
- 方式一:
clash.yaml
这配置文件有点繁琐,暂时没搞清楚具体的写法。但所幸,自己的windows或者Mac电脑里安装了clash软件,配置运行好后,将生成的clash.yaml
文件直接替换到Clash容器的config本地挂载目录就行再重新启动 Clash 容器以应用新的配置。
docker restart my-clash
-
方式二:
自行配置
clash.yaml
文件,暂略
现在,已经成功在 Docker 中拉取了 Clash 镜像并创建了 Clash 容器,并且通过加载订阅来使用 了。
# 测试一下
curl --proxy http://127.0.0.1:7890 https://www.google.com/
4. 其他容器等使用代理
以上运行的clash容器,端口已经映射到宿主机相同的端口,若要使用,宿主机可采用127.0.0.1:7890,而其他容器要使用,则需要查询clash所在容器的IP地址加上7890端口。
有多种方法可以查询Docker容器的IP地址,以下是其中几种常用的指令:
-
docker inspect <container_name>
:该命令会返回一个JSON格式的输出,其中包含了容器的详细信息,包括IP地址。 -
docker container inspect <container_name>
:与上述命令类似,该命令会返回容器的详细信息,包括IP地址。 -
docker container ls
:该命令可以列出当前正在运行的所有容器,其中包括容器的ID和名称。然后可以使用docker container inspect <container_id>
命令查看指定容器的详细信息,包括IP地址。 -
docker exec <container_name> ip addr show
:该命令可以在容器内部执行,用于查看容器的IP地址。 -
docker network inspect bridge
:该命令可以查看Docker默认的bridge网络的详细信息,其中包括所有容器的IP地址。