docker 图片中的 openVPN

openVPN inside docker image

我正在尝试创建一个 docker 图像,其中有一个 python 脚本,该脚本使用 openVPN 通过 VPN 连接到 API,但是,我似乎无法使用 openVPN正在工作。

我有我的 docker 文件

# Install openVPN and get confi files
RUN mkdir /config
ADD ./config/. /config
RUN apt-get install -y openvpn 

# Run openvpn and script
CMD openvpn --config config/fremsyn.ovpn --auth-user-pass config/login.txt --askpass config/password.conf && python3 src/cli/getStatus.py

但我一直收到错误消息:

ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)

这个问题有解决办法吗?

附带说明一下,我需要 运行 将容器作为 Azure 中的容器实例。

尝试 运行 您的容器具有名为 NET_ADMIN 的额外功能。同时安装 /dev/net/tun 设备。

docker run --cap-add NET_ADMIN -v /dev/net/tun:/dev/net/tun …
  1. 运行 ovpn 与 Dockerfile 中的守护进程
CMD openvpn --daemon --config config/fremsyn.ovpn --auth-user-pass config/login.txt --askpass config/password.conf && python3 src/cli/getStatus.py
  1. 对于 运行 服务使用 docker-compose.yml 像这样:

docker-compose.yml

version: "3.3"
services: 
  name_of_your_service:
    image: your_image_from_Dockerfile_build
    restart: always
    sysctls:
      - net.ipv6.conf.all.disable_ipv6=0
    cap_add: 
      - NET_ADMIN
    devices:
      - /dev/net/tun
    volumes:
      - /etc/timezone:/etc/timezone:ro

运行 命令

 $ docker-compose up -d