Can docker containers make use of neutron SRIOV plugin?

asked 2015-05-04 03:28:00 -0500

nishant80 gravatar image

updated 2015-05-04 06:57:42 -0500

SGPJ gravatar image

I am trying Juno

It would be great to make use of existing SR-IOV capable NICs. I would like to understand if docker containers can be attached to Virtual Functions such that they communicate over the NICs hardware bridge (instead of the virtual docker0 bridge). I have seen that neutron ml2 sriov plugin can attach VFs to virtual machines to enable pass-through. And, I am wondering if the nova-compute driver can understand a command like following to attach docker container to specified SRIOV port:

$ nova boot --flavor m1.tiny --image <image name>  test --nic port-id=<SRIOV VF port ID got from neutron port-list>

The above would be possible if nova docker driver can seamlessly connect to ports created by neutron.

To be more specific, consider this scenario:
Container A is attached to VF#1
Container B is attached to VF#2

A and B are linked together and when they exchange data it should happen over the hardware bridge on NIC (instead of docker0).

Is the above supported natively in docker?

If not, can pipework help here? (I have heard pipework can do amazing things)

Examples would be very helpful.

edit retag flag offensive close merge delete

Comments

Where can I find updated documentations on that topic?

GLaupre gravatar imageGLaupre ( 2015-05-04 21:03:50 -0500 )edit

@GLaupre: You can read about docker in openstack here: https://wiki.openstack.org/wiki/Docker

But, this link doesn't talk about networking in detail.

nishant80 gravatar imagenishant80 ( 2015-05-05 01:06:50 -0500 )edit

@nishant80 After reading this wiki, I still don't really understand the role of the Docker Containers. Is it like an hypervisor or is it more like a VM, or a combination of the two? Can you highlight me a bit on that?

GLaupre gravatar imageGLaupre ( 2015-05-05 16:28:30 -0500 )edit

@GLaupre: If you are looking for a basic docker tutorial, I suggest to look here https://www.docker.com/whatisdocker/. In simple terms, Docker is a framework built over traditional Lxc (Linux containers) that lets you run a self-contained and isolated .. continued in next comment

nishant80 gravatar imagenishant80 ( 2015-05-06 02:49:58 -0500 )edit

...environment (using cgroups and netns features in Linux) without the overhead of an hypervisor.

nishant80 gravatar imagenishant80 ( 2015-05-06 02:50:33 -0500 )edit