transmission-openvpn 도커 컨테이너가 DSM 7에서 잘 실행 안되는 문제가 있는데
해결 방법으로 높은 권한 체크를 넣었다가 뺐다가 하면서 실행하는 방법이 알려져 있지만
그런 것 없이 실행하는 방법이 있어서 올려 봅니다. 일단 7.1에서도 큰 문제 없이 실행되네요.
요약: /dev/net/tun을 잘 사용하자
1. tun 작성용 스크립트 등록
여기 내용을 참조해서 작업 스케쥴러에 루트 권한으로 tun을 작성하는 스케쥴을 등록합니다.
2. docker-compose.yml
version: '3' services: transmission-openvpn: image: haugene/transmission-openvpn:latest container_name: transmission-openvpn environment: - OPENVPN_USERNAME=${OPENVPN_USERNAME} - OPENVPN_PASSWORD=${OPENVPN_PASSWORD} - OPENVPN_PROVIDER=${OPENVPN_PROVIDER} - OPENVPN_CONFIG=${OPENVPN_CONFIG} - LOCAL_NETWORK=${LOCAL_NETWORK} - PUID=${PUID} - PGID=${PGID} - TRANSMISSION_RPC_PASSWORD=${TRANSMISSION_RPC_PASSWORD} - TRANSMISSION_RPC_USERNAME=${TRANSMISSION_RPC_USERNAME} - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=true - TZ=Asia/Seoul - GLOBAL_APPLY_PERMISSIONS=true - TRANSMISSION_HOME=/data/transmission-home - TRANSMISSION_RPC_PORT=9091 - TRANSMISSION_DOWNLOAD_DIR=/data/completed - TRANSMISSION_INCOMPLETE_DIR=/data/incomplete - TRANSMISSION_WATCH_DIR=/data/watch - CREATE_TUN_DEVICE=true - ENABLE_UFW=false - UFW_ALLOW_GW_NET=false - UFW_EXTRA_PORTS - UFW_DISABLE_IPTABLES_REJECT=false - PEER_DNS=true - PEER_DNS_PIN_ROUTES=true - DROP_DEFAULT_ROUTE - WEBPROXY_ENABLED=false - WEBPROXY_PORT=8118 - WEBPROXY_USERNAME - WEBPROXY_PASSWORD - LOG_TO_STDOUT=false - HEALTH_CHECK_HOST=google.com - SELFHEAL=false - CAP_ADD=NET_ADMIN - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60 restart: always cap_add: - NET_ADMIN devices: - /dev/net/tun sysctls: - net.ipv4.ip_forward=1 - net.ipv6.conf.all.disable_ipv6=0 volumes: - /dev/net:/dev/net:z - ./config:/etc/openvpn/custom # OPENVPN_CONFIG에 지정한 ovpn 파일을 저장한 폴더 #- ./transmission-home:/data/transmission-home # 설정 파일 등을 보관하려면 지정 - ./Torrent/watch:/data/watch # 파일 감시용 - ./Torrent/incomplete:/data/incomplete # 중간 파일용 - ./Torrent/completed:/data/completed # 완료된 파일 저장 위치 ports: - 8118:8118 - 9091:9091 dns: - 8.8.8.8 - 8.8.4.4 deploy: resources: limits: memory: 2048M
대충 요런 느낌으로 docker compose용 파일을 만들고 필요한 부분을 수정해서 docker-compose.yml로 저장하고 나서
파일이 있는 폴더에서 다음 명령어를 실행합니다.
OPENVPN_USERNAME 라던지 볼륨 부분의 폴더 지정 등은 다른 강좌를 참조해서 수정하시면 되니 설명은 생략합니다.
docker-compose up -d
이렇게 하면 재부팅을 하거나 해도 문제없이 openvpn을 사용한 도커 컨테이너가 실행될 겁니다.
아래 글 참고하세요.
https://www.clien.net/service/board/cm_nas/14673567CLIEN
링크 감사합니다.
저는 이 방법으로도 해당 증상이 해결되지 않아서 도커 컴포즈 스크립트를 작성해서 실행했습니다.
이 스크립트의 장점이라면 관리자 권한을 요구하지 않는다는 점이네요.