Docker部署clash并使用代理
Zemise
Zemise
发布于 2023-06-18 / 1254 阅读 / 0 评论 / 3 点赞

Docker部署clash并使用代理

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,并将容器内的 78907891 端口映射到主机上的同名端口。

  • -v 参数用于将本地的 Clash 配置文件挂载到容器中,以便持久化保存 Clash 的配置信息。

  • ./config 是本地存放 Clash 配置文件的路径,请将其替换为自己本地的实际路径。

  1. 加载订阅

    1. 方式一:

    clash.yaml这配置文件有点繁琐,暂时没搞清楚具体的写法。但所幸,自己的windows或者Mac电脑里安装了clash软件,配置运行好后,将生成的clash.yaml文件直接替换到Clash容器的config本地挂载目录就行

    再重新启动 Clash 容器以应用新的配置。

    docker restart my-clash
    
    1. 方式二:

      自行配置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地址,以下是其中几种常用的指令:

  1. docker inspect <container_name>:该命令会返回一个JSON格式的输出,其中包含了容器的详细信息,包括IP地址。

  2. docker container inspect <container_name>:与上述命令类似,该命令会返回容器的详细信息,包括IP地址。

  3. docker container ls:该命令可以列出当前正在运行的所有容器,其中包括容器的ID和名称。然后可以使用docker container inspect <container_id>命令查看指定容器的详细信息,包括IP地址。

  4. docker exec <container_name> ip addr show:该命令可以在容器内部执行,用于查看容器的IP地址。

  5. docker network inspect bridge:该命令可以查看Docker默认的bridge网络的详细信息,其中包括所有容器的IP地址。


评论