Tôi muốn chạy hai bộ chứa docker trong cùng một không gian tên mạng Linux.
Mục tiêu của tôi là định tuyến tất cả lưu lượng truy cập torrent của mình thông qua OpenVPN.
Tập lệnh này tạo thành công vùng chứa ứng dụng khách openvpn.
Tôi có thể nhập thành công không gian tên này và xác minh địa chỉ IP của tôi thực sự là địa chỉ IP của OpenVPN.
Vấn đề của tôi là - Làm cách nào để tôi chạy bộ chứa docker qbittorent bên trong không gian tên mạng openvpn?
Có một số loại cờ khi khởi động bộ chứa docker để chỉ định không gian tên mạng sẽ chạy trong đó không?
Bất kỳ giải pháp có thể khác?
Tôi hiểu rằng tôi không thể thay đổi không gian tên mạng của một quy trình đang chạy
Cảm ơn
CẬP NHẬT
GIẢI PHÁP
thêm điều này
--net=container:$openvpn_client
openvpn_client="openvpn-client"
torrent_client="torrent_client"
devinettorrent_ns="dewinettorrent_ns"
hàm getpid {
pid="$(docker check -f '{{.State.Pid}}' "$1")"
tiếng vang $pid
}
docker rm -f $openvpn_client
docker rm -f $torrent_client
ip netns xóa $dewinettorrent
ip netns pids $dewinettorrent_ns | xargs -t kill -9
docker chạy -d \
--đặc quyền \
--name=$openvpn_client \
--volume /home/dewi/code/dot-files/vpn/:/data/vpn \
--volume /home/dewi/code/dewi_projects/ivacy_vpn_auth:/data/vpn/auth-user-pass \
docker-openvpn-client-dewi
docker chạy -d \
--name=$torrent_client \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Châu Âu/London \
-e WEBUI_PORT=8080 \
-p 9080:8080 \
-v /path/to/appdata/config:/config \
-v /path/to/downloads:/downloads \
lscr.io/linuxserver/qbittorrent
mkdir -p /var/run/netns;
ln -fs "/proc/$(getpid $openvpn_client)/ns/net" /var/run/netns/$dewinettorrent_ns
mkdir -p /etc/netns/$dewinettorrent_ns/
echo 'máy chủ định danh 8.8.8.8' > /etc/netns/$dewinettorrent_ns/resolv.conf
docker exec -i $openvpn_client bash /data/scripts/entry.sh &
ip netns exec $dewinettorrent_ns curl icanhazip.com #successfully trả lại địa chỉ IP VPN của tôi