在Docker构建的容器中安装ping工具

因为用Docker拉取的Base镜像如Centos和Ubuntu的话都是最简版本,不包含Ping工具,而对Docker进行Docker network和Docker链接操作时往往要用到Ping工具测试两个容器间的网络,此时就要用到Ping工具了,下面是Ubuntu下安装Ping工具的命令:

sudo apt-get update && apt-get install iputils-ping

openwrt固件格式

固件格式

  • kernel:内置最简文件系统的Linux内核,适用于首次安装或故障恢复
  • sysupgrade:从本来就是openwrt的固件基础上升级,或者无刷机引导限制的机器上直接刷入此格式文件
  • factory:用于从设备的原厂固件刷入factory,再刷入breed之类不死使用
  • ext4 :可以扩展磁盘空间大小
  • squashfs :可以使用 重置功能(恢复出厂设置)
  • efi : efi引导,非BIOS引导(优先使用efi固件,无法启动时再换无efi固件)
  • rootfs :不带引导,可自行定义用grub或者syslinux来引导
  • combined :带引导
  • .img :物理机使用
  • .vmdk :虚拟机 ESXi/VMware 使用
  • .qcow2 :虚拟机 PVE 使用
  • .vdi :虚拟机 VirtualBox 使用
  • .vhdx :虚拟机 Hyper-V 使用
  • .tar:容器 Docker、LXC 使用
  • IPK.zip压缩文件是随固件一起提供的ipk,包括未集成到固件里的一些例如dockerman,仅适用于同目录下的固件,其他人编译的固件不保证可用!

OpenWrt如何完整的完全的禁用IPV6

虽说IPV6推广那么多年了,但真正使用的似乎还是很少。当你使用OpenWrt作为路由器系统的时候,有些应用反而会因为ipv6产生一些莫名奇妙的问题。ITGeeker技术奇客经过多方面搜索,并经过多次尝试,找到了完整且完全禁用ipv6的正确方法。

一下是通过命令行来禁止OpenWrt的ipv6的完整过程:

1. 首先禁止Lan,Wan和DHCPv6及odhcpd

uci set 'network.lan.ipv6=0'
uci set 'network.wan.ipv6=0'
uci set 'dhcp.lan.dhcpv6=disabled'
/etc/init.d/odhcpd disable
uci commit

有些能担心禁用odhcpd会带来问题,实际上据说odhcpd是专门位IPV6服务的。
by http://itgeeker.net

2. 禁用 RA 和 DHCPv6,这样就不会分发 IPv6 IP

uci -q delete dhcp.lan.dhcpv6
uci -q delete dhcp.lan.ra
uci commit dhcp
/etc/init.d/odhcpd restart

3. 现在可以禁用 LAN 委派

uci set network.lan.delegate="0"
uci commit network
/etc/init.d/network restart

4. 禁用odhcpd

/etc/init.d/odhcpd disable
/etc/init.d/odhcpd stop

5. 最后你可以删除 IPv6 ULA 前缀

uci -q delete network.globals.ula_prefix
uci commit network
/etc/init.d/network restart

你现在登录OpenWrt界面就会发现所以IPV6相关的配置和设置都已被删除或禁止(disabled)。

macvlan模式的容器与宿主机通信

https://notesail.com/posts/macvlan-host.html

 # 以下操作都在宿主机上运行,新增一个叫mynet(不要和容器的macvlan重名)的macvlan接口

ip link add mynet link eth0 type macvlan mode bridge

# 为该接口分配ip,并启用

ip addr add 192.168.0.10 dev mynet

ip link set mynet up

# 修改路由,使宿主机到192.168.0.100的通信全部经由mynet进行

ip route add 192.168.0.100 dev mynet