我现在尝试在启动Docker容器时分配静态IP 172.17.0.1.
我使用端口2122作为此容器的ssh端口,以便我让这个容器监听端口2122.
sudo docker run -i -t -p 2122:2122 ubuntu
Run Code Online (Sandbox Code Playgroud)
此命令将运行具有随机IP(如172.17.0.5)的Docker容器,但我需要为容器分配特定的IP.
以下shell脚本是我在高级网络设置中引用Docker文档的内容.
pid=$(sudo docker inspect -f '{{.State.Pid}}' <container_name> 2>/dev/null)
sudo rm -rf /var/run/netns/*
sudo ln -s /proc/$pid/ns/net /var/run/netns/$pid
sudo ip link add A type veth peer name B
sudo brctl addif docker0 A
sudo ip link set A up
sudo ip link set B netns $pid
sudo ip netns exec $pid ip link set eth0 down
sudo ip netns exec $pid ip link delete eth0
sudo ip netns exec …Run Code Online (Sandbox Code Playgroud) 我在用户创建的覆盖网络中的Docker Swarm中运行nginx容器作为服务.两者都创建:
docker network create --driver overlay proxy
docker service create --name proxy --network proxy -p 80:80 nginx
Run Code Online (Sandbox Code Playgroud)
当通过浏览器访问nginx站点时,在nginx访问日志远程地址被记录为10.255 ...格式化地址,我认为是Swarm负载均衡器地址.问题是如何知道/记录访问站点的最终客户端的地址而不是负载均衡器地址.