Docker调用宿主机openvswitch服务

在容器化服务时会遇到调用物理机服务的问题。此篇会示范将Docker中运行ovs-vsctl命令调用物理机openvswitch的配置信息。

用此命令启动要使用ovs的容器

docker run -it -d  \
--restart=always -u root \
-v /usr/bin/ovs-vsctl:/usr/bin/ovs-vsctl \
-v /var/run/openvswitch/db.sock:/var/run/openvswitch/db.sock \
-v /usr/sbin/ovs-vswitchd:/usr/sbin/ovs-vswitchd \
-v /lib/x86_64-linux-gnu/libssl.so.1.0.0:/lib/x86_64-linux-gnu/libssl.so.1.0.0 \
-v /lib/x86_64-linux-gnu/libcrypto.so.1.0.0:/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 <image>
-u root

使容器以root权限运行

-v /usr/bin/ovs-vsctl:/usr/bin/ovs-vsctl \

将宿主机的ovs-vsctl命令挂载,如有需要也可将ovs-ofctl,ovs-appctl等挂载进去

-v /var/run/openvswitch/db.sock:/var/run/openvswitch/db.sock \
-v /usr/sbin/ovs-vswitchd:/usr/sbin/ovs-vswitchd \

和ovs的守护进程及数据库通信

-v /lib/x86_64-linux-gnu/libssl.so.1.0.0:/lib/x86_64-linux-gnu/libssl.so.1.0.0 \
-v /lib/x86_64-linux-gnu/libcrypto.so.1.0.0:/lib/x86_64-linux-gnu/libcrypto.so.1.0.0

挂载ovs相关的函数依赖库,此处为ubuntu下的目录。

演示

docker run -it -d  \
--restart=always -u root \
-v /usr/bin/ovs-vsctl:/usr/bin/ovs-vsctl \
-v /var/run/openvswitch/db.sock:/var/run/openvswitch/db.sock \
-v /usr/sbin/ovs-vswitchd:/usr/sbin/ovs-vswitchd \
-v /lib/x86_64-linux-gnu/libssl.so.1.0.0:/lib/x86_64-linux-gnu/libssl.so.1.0.0 \
-v /lib/x86_64-linux-gnu/libcrypto.so.1.0.0:/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 --name=u2 ubuntu
docker exec -it u2 ovs-vsctl show
47068f42-68bb-473a-94a8-1ccccc3aed38
    ovs_version: "2.5.5"

所有ovs-vsctl的命令将在宿主机执行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容