docker 打包 frp客户端和服务端


1、背景

​ 自从入了树莓派、黑裙辉等设备的坑后就开始琢磨frp内网穿透的技术了,这不,为了方便自己管理和操作frp客户端,准备用docker部署frp客户端和服务端,由于网上现成的docker-frp包版本不一,一直用0.20.0版本的我就决定自己动手。

2、环境介绍

​ 首先你需要有一台拥有公网ip的 服务器/电脑 一台用来部署frp服务端,下面是我的服务器环境。

  • 系统:centos7.2
  • frp版本:0.20.0
  • docker版本:19.03.12

此处省略centos安装docker环境的介绍,请自行百度!

frp版本请自行上github下载(下载好自己需要的版本即可)

3、frps服务端

①Dockerfile文件

  • 创建工作目录
cd /home/admin
mkdir docker && cd docker
mkdir frps && cd frps
  • 将下载好的frps文件放入此文件夹/home/admin/docker/frps
  • 创建frps.ini配置文件

    mkdir conf && vi conf/frps.ini

将以下内容填入frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000
dashboard_addr = 0.0.0.0
dashboard_port = 7001
dashboard_user = admin
dashboard_pwd = admin
privilege_token = frp123

max_pool_cout = 6
  • 创建Dockerfile

    vi Dockerfile

将以下内容填入Dockerfile

# frps for Dockerfile

#frps_version=0.20.0

FROM alpine:latest
MAINTAINER zbl <1399853961@qq.com>

ARG FRP_VERSION=0.20.0

RUN set -ex  \
    && mkdir -p /var/frp



COPY frps /var/frp/frps

RUN chmod +x /var/frp/frps

VOLUME /var/frp/conf    # conf被配置成了卷,方便以后修改frps.ini

WORKDIR /var/frp
ENTRYPOINT ./frps -c ./conf/frps.ini >> ./conf/log/info.log 2>> ./conf/log/error.log

②编译镜像

​ 创建完Dockerfile文件后则可以开始打包镜像了

docker build --tag="zbl/docker-frps:0.20.0"

③创建容器

​ 在编译好自己的镜像后下一步当然是创建容器启动该镜像啦!

#  -d 后台运行 -v 磁盘映射 --name 容器名 -p 映射端口 
docker run -d -v /home/docker/frp/conf:/var/frp/conf --name frps -p 27000:7000 -p 27001:8000 -p 27002-27010:27002-27010 zbl/docker-frps:0.20.0

④导出镜像

​ 每次换一台机器都需要重新打包编译一遍,这样是不是太麻烦了呢?由于懒得注册docker官网仓库,于是选择手动导出镜像包文件

#保存为tar文件
docker save > docker-frps.tar zbl/docker-frps:0.20.0

4、frpc客户端

①Dockerfile文件

  • 创建工作目录
cd /home/admin
mkdir docker && cd docker
mkdir frpc && cd frpc
  • 将下载好的frpc文件放入此文件夹/home/admin/docker/frpc
  • 创建frpc.ini配置文件

    mkdir conf && vi conf/frpc.ini

将以下内容填入frpc.ini

[common]
server_addr = 你的服务器ip
server_port = 27000
privilege_token = frp123
login_fail_exit = false

[myComputer]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 27007
  • 创建Dockerfile

    vi Dockerfile

将以下内容填入Dockerfile

# frpc for Dockerfile

#frpc_version=0.20.0

FROM alpine:latest
MAINTAINER zbl <1399853961@qq.com>

ARG FRP_VERSION=0.20.0

RUN set -ex  \
    && mkdir -p /var/frp



COPY frps /var/frp/frpc

RUN chmod +x /var/frp/frpc

VOLUME /var/frp/conf    # conf被配置成了卷,方便以后修改frps.ini

WORKDIR /var/frp
ENTRYPOINT ./frpc -c ./conf/frpc.ini >> ./conf/log/info.log 2>> ./conf/log/error.log

②编译镜像

​ 创建完Dockerfile文件后则可以开始打包镜像了

docker build --tag="zbl/docker-frpc:0.20.0"

③创建容器

​ 在编译好自己的镜像后下一步当然是创建容器启动该镜像啦!

#  -d 后台运行 -v 磁盘映射 --name 容器名 --net host模式  与主机共享端口 
docker run -d -v /home/docker/frp/conf:/var/frp/conf --name frpc --net host zbl/docker-frpc:0.20.0

④导出镜像

​ 每次换一台机器都需要重新打包编译一遍,这样是不是太麻烦了呢?由于懒得注册docker官网仓库,于是选择手动导出镜像包文件

#保存为tar文件
docker save > docker-frpc.tar zbl/docker-frpc:0.20.0
  • 导入镜像

    docker load < docker-frpc.tar zbl/docker-frpc:0.20.0

5、完成

​ 启动服务端和客户端后进入服务端的dashboard面板即可看到已建立连接的端口啦。

请输入图片描述

最后修改:2020 年 12 月 19 日
如果觉得我的文章对你有用,请随意赞赏