Puncte:-2

Cum pot rula două containere Docker în același spațiu de nume de rețea?

drapel sn

Vreau să rulez două containere docker în același spațiu de nume de rețea Linux.
Scopul meu este să direcționez tot traficul meu torrent prin OpenVPN.
Acest script creează cu succes un container client openvpn.
Pot introduce cu succes acest spațiu de nume și pot verifica că adresa mea IP este într-adevăr adresa IP OpenVPN.

Problema mea este - Cum rulez containerul docker qbittorent în spațiul de nume de rețea openvpn?

Există un fel de semnalizare la pornirea unui container docker pentru a specifica spațiul de nume de rețea în care să ruleze?
Alte solutii posibile?
Înțeleg că nu pot schimba spațiul de nume de rețea al unui proces care rulează deja
Mulțumiri

ACTUALIZAȚI SOLUŢIE
adaugă asta
--net=container:$openvpn_client

openvpn_client="client-openvpn"
torrent_client="client_torrent"
dewinettorrent_ns="dewinettorrent_ns"

function getpid {
        pid="$(docker inspect -f '{{.State.Pid}}' "$1")"
        echo $pid
}

docker rm -f $openvpn_client
docker rm -f $torrent_client
ip netns șterge $dewinettorrent

ip netns pids $dewinettorrent_ns | xargs -t kill -9

docker run -d \
  --privilegiat \
  --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 run -d \
  --name=$client_torrent \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europa/Londra \
  -e WEBUI_PORT=8080 \
  -p 9080:8080 \
  -v /path/to/appdata/config:/config \
  -v /cale/la/descărcări:/descărcări \
  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 'server de nume 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 returnează adresa mea IP VPN
drapel in
Asta e documentat.
Puncte:1
drapel co

Yes, using the --net flag.

docker run ... --name app1 image1
docker run ... --net container:app1 --name app2 image2

E.g.

$ docker run --rm -d --name nginx nginx
351aa6f8dbfd46600bb6e7466e49fa1a62bc9d41e3c3001b4f1f55bce33a4720

$ docker run -it --rm --net container:nginx nicolaka/netshoot bash
bash-5.1# ss -lnt
State                    Recv-Q                   Send-Q                                     Local Address:Port                                      Peer Address:Port                   Process                   
LISTEN                   0                        511                                              0.0.0.0:80                                             0.0.0.0:*                                                
LISTEN                   0                        511                                                 [::]:80                                                [::]:*                                                
bash-5.1# exit
exit

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.