首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在同一个网络命名空间中运行两个码头容器?

如何在同一个网络命名空间中运行两个码头容器?
EN

Server Fault用户
提问于 2022-02-22 10:41:17
回答 1查看 855关注 0票数 -2

我想在同一个Linux网络命名空间中运行两个坞容器。我的目标是通过OpenVPN路由我所有的急流流量。此脚本成功地创建了openvpn客户端容器。我可以成功地输入这个名称空间并验证我的IP地址确实是OpenVPN IP地址。

My问题是-如何在openvpn网络命名空间内运行qbittorent容器?

启动码头容器以指定要运行的网络命名空间时,是否存在某种标志?还有其他可能的解决办法吗?据我所知,我无法更改已在运行的进程的网络命名空间。

UPDATE解决方案添加此-net=容器:$openvpn_client

代码语言:javascript
复制
openvpn_client="openvpn-client"
torrent_client="torrent_client"
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 delete $dewinettorrent

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

docker run -d  \
  --privileged \
  --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=$torrent_client \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/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 'nameserver 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 returns back my VPN IP address
EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-02-22 13:50:41

是的,使用--net标志。

代码语言:javascript
复制
docker run ... --name app1 image1
docker run ... --net container:app1 --name app2 image2

例如。

代码语言:javascript
复制
$ 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
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1094428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档