Edited at

Docker ComposeでPritunl使ってOpenVPN環境を整える。

More than 3 years have passed since last update.


はじめに

こちらの投稿をみて、PritunlをDocker上で構築してみたところ、利用されているDocker Imageが最新バージョンのPritunlに対応していなかったようなので、あらためてDocker Composeを利用して環境を構築してみました。


構築イメージ

networkについては以前の投稿のように、ポート開放専用コンテナを作成し、他のコンテナは専用コンテナのnetworkを利用する形で。

MongodbについてはOfficialイメージを利用し、Pritunlについては比較的ビルド頻度の高いfridus/pritunlを利用しました。


docker-compose.yml

network:

image: busybox
ports:
- "127.0.0.1:9700:443"
- "1194:1194/udp"
- "1194:1194/tcp"
restart: always
tty: true
mongo:
image: mongo
volumes:
- ./mongo:/data/db
restart: always
net: container:network
pritunl:
image: fridus/pritunl
privileged: true
environment:
- MONGO_URI=mongodb://127.0.0.1:27017/pritunl
restart: always
net: container:network


利用方法

docker-compose.ymlと同じ階層にmongoディレクトリを作った後は

docker-compose up -d

で立ち上がります。

管理コンソールはローカルホストからのアクセスに限定しているのでご注意を。


終わりに

勉強がてらPritunlを使ってOpenVPNを立ててみたのですが、VPS一台しか管理してない環境だとどう使えばいいのやら・・・

また、Dockerで構築したOpenVPNからDockerホスト自身、もしくは別コンテナにアクセスするにはどうしたらいいのかわからなくてまだ何も活かせてないです。

(できたら別コンテナで動かしているプロキシを利用したいのだけど、どうやればいいのやら・・・同じようにネットワークコンテナに相乗りすれば大丈夫だろうけど、docker-compose.ymlが肥大化するのも嫌だし・・・)

誰か、VPS1台しかなく、他に常時起動しているマシンがない状態でVPNを立てることで幸せになれる何かがあればぜひ教えて下さい