网站建设合同 模板 下载,北京seo多少钱,网页制作模板秋季,搜索引擎优化定义docker配置网络 #宿主机执行命令
ifconfig 查询对应的主机ip 子网掩码 网关地址
#[网卡名称]#xff1a;inet[主机IP] netmask[子网掩码] broadcast[网关地址]这里需要重点关注#xff1a;eno1[网卡名称]以及【192.168.31.225】网关地址 在宿主机执行docker命令创建一个虚拟…docker配置网络 #宿主机执行命令
ifconfig 查询对应的主机ip 子网掩码 网关地址
#[网卡名称]inet[主机IP] netmask[子网掩码] broadcast[网关地址]这里需要重点关注eno1[网卡名称]以及【192.168.31.225】网关地址 在宿主机执行docker命令创建一个虚拟网络虚拟网络与宿主机同网段
docker network create -d macvlan --subnet 192.168.31.0/24 --gateway 192.168.31.1 -o parenteno1 docker-bridge这里针对上面的创建做一个解释 -d macvlan :表示创建一个macvlan的网络使用macvlan网络驱动 –subnet :[网段]【子网名称】 –gateway 指定宿主机所在的网段的网关 -o parent 继承指定网段的网卡 这里我的宿主机的网卡是eno1所以 选择eno1为继承网卡 至此创建了一个名称为docker-bridge的macvlan网络名称 在宿主机端运行docker 创建container容器 并为容器配置IP地址 docker run -it --networkdocker-bridge --ip192.168.31.10 --nametest osrf/ros:humble-desktop-full /bin/bash
#至此创建一个静态IP为192.168.31.10的container容器 外部主机可以通过远程实现访问想通过外部主机实现docker 远程访问container内部
#需要在docker内部进行ssh 远程服务配置
/etc/init.d/ssh status #检查容器是否有ssh服务
sudo apt-get install openssh-server #安装ssh远程链接
#设置root远程访问权限(**这里需要在PermitRootLogin prohibit-password下添加如下内容**)
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
按esc wq保存后
#配置容器的用户密码
passwd#设置开机自启动
sudo systemctl enable ssh
sudo vim /root/.bashrc
在.bashrc末尾添加如下代码
service ssh start 保存在外部宿主机进行ping 然后ssh远程访问 外部主机配置参考 windows 主机 ipconfig的连接网段为192.168.31.95 跟docker container test处于同一个局域网IP内
ping 192.168.31.10
#能够成功接收到回传包数据
ssh root192.168.31.10 -p 22 #其中22为容器暴露的外部端口
#上图为成功进入docker 容器内部实现window 进入 linux宿主机内部的docker 进行直接通信参考链接 参考连接 参考链接 参考链接
问题在宿主机不能ping同处在同局域网段的docker container
基础环境:linux 20.04 ip 为有线连接 ip:192.168.31.105 container配置的ip为192.168.31.10 是现在宿主机内部ping同其docker容器 问题 解决方法外部机器能ping通容器但是宿主机无法ping通这是因为macvlan的原因还需要进行以下步骤
#添加一个虚拟网卡 并桥接到物理网卡上 因为上面配置有一个docker-bridge的网桥 所以
sudo ip link add macvlan-proxy link eno1 type macvlan mode bridge
#主要就是创建一个macvlan-proxy的虚拟网卡 通过bridge 桥接到noa1
#给虚拟网卡配置ip 需要避免ip冲突
#这里window ip 12.168.31.95
#linux ip 192.168.31.195
#板端 ip 192.168.31.67
#docker container test ip 192.168.31.10
sudo ip addr add 192.168.31.15 dev macvlan-proxy
#启动虚拟网卡
sudo ip link set macvlan-proxy up
#添加路由映射表 ip为container test的ip
sudo ip route add 192.168.31.10 dev macvlan-proxy
#最后成功ping 通同宿主机下docker container在同局域网下的container容器zhaobojunzhaobojun:~$ sudo ip link add macvlan-proxy link eno1 type macvlan mode bridge
[sudo] zhaobojun 的密码
zhaobojunzhaobojun:~$ ip addr add 192.168.31.15 dev macvlan-proxy
RTNETLINK answers: Operation not permitted
zhaobojunzhaobojun:~$ sudo ip addr add 192.168.31.15 dev macvlan-proxy
zhaobojunzhaobojun:~$ sudo ip link set macvlan-proxy up
zhaobojunzhaobojun:~$ ip route add 192.168.31.10 dev macvlan-proxy
RTNETLINK answers: Operation not permitted
zhaobojunzhaobojun:~$ sudo ip route add 192.168.31.10 dev macvlan-proxy
zhaobojunzhaobojun:~$ pi
pi1toppm pidof pinentry-x11 pip
pi3topbm pigz ping pip3
pic pinentry ping4 pivot_root
pico pinentry-curses ping6 pixeltool
piconv pinentry-gnome3 pinky
zhaobojunzhaobojun:~$ pin
pinentry pinentry-gnome3 ping ping6
pinentry-curses pinentry-x11 ping4 pinky
zhaobojunzhaobojun:~$ ping
ping ping4 ping6
zhaobojunzhaobojun:~$ ping 192.168.31.10
PING 192.168.31.10 (192.168.31.10) 56(84) bytes of data.
64 字节来自 192.168.31.10: icmp_seq1 ttl64 时间0.109 毫秒
64 字节来自 192.168.31.10: icmp_seq2 ttl64 时间0.075 毫秒
64 字节来自 192.168.31.10: icmp_seq3 ttl64 时间0.071 毫秒
64 字节来自 192.168.31.10: icmp_seq4 ttl64 时间0.074 毫秒
64 字节来自 192.168.31.10: icmp_seq5 ttl64 时间0.077 毫秒
64 字节来自 192.168.31.10: icmp_seq6 ttl64 时间0.071 毫秒
64 字节来自 192.168.31.10: icmp_seq7 ttl64 时间0.075 毫秒
64 字节来自 192.168.31.10: icmp_seq8 ttl64 时间0.063 毫秒
64 字节来自 192.168.31.10: icmp_seq9 ttl64 时间0.072 毫秒
^C
--- 192.168.31.10 ping 统计 ---
已发送 9 个包 已接收 9 个包, 0% 包丢失, 耗时 8194 毫秒
rtt min/avg/max/mdev 0.063/0.076/0.109/0.012 msssh -X root192.168.31.20

参考连接
sunriseubuntu:~$ sudo ip add macvlan-proxy link eno1 macvlan mode bridge
Command macvlan-proxy is unknown, try ip address help.
sunriseubuntu:~$ sudo ip add macvlan-proxy link wlan0 macvlan mode bridge
Command macvlan-proxy is unknown, try ip address help.
sunriseubuntu:~$ ip link add macvlan-proxy link wlan0 type macvlan mode bridge
RTNETLINK answers: Operation not permitted
sunriseubuntu:~$ sudo ip link add macvlan-proxy link wlan0 type macvlan mode bridge
sunriseubuntu:~$ sudo ip addr add 192.168.1.60 dev macvlan-proxy
sunriseubuntu:~$ ip link set macvlan-proxy up
RTNETLINK answers: Operation not permitted
sunriseubuntu:~$ sudo ip link set macvlan-proxy up
sunriseubuntu:~$ sudo ip route add 192.168.31.50 dev macvlan-proxy
sunriseubuntu:~$ sudo ip add macvlan-proxy link eno1 macvlan mode bridge
Command macvlan-proxy is unknown, try ip address help.
sunriseubuntu:~$ sudo ip add macvlan-proxy link wlan0 macvlan mode bridge
Command macvlan-proxy is unknown, try ip address help.
sunriseubuntu:~$ ip link add macvlan-proxy link wlan0 type macvlan mode bridge
RTNETLINK answers: Operation not permitted
sunriseubuntu:~$ sudo ip link add macvlan-proxy link wlan0 type macvlan mode bridge
sunriseubuntu:~$ sudo ip addr add 192.168.1.60 dev macvlan-proxy
sunriseubuntu:~$ ip link set macvlan-proxy up
RTNETLINK answers: Operation not permitted
sunriseubuntu:~$ sudo ip link set macvlan-proxy up
sunriseubuntu:~$ sudo ip route add 192.168.31.50 dev macvlan-proxy