Libnetwork plugin for Calico
This plugin for Docker networking (libnetwork) is intended for use with Project Calico.
The plugin is integrated with the calico/node
image which is created from the calico-containers repository.
Guides on how to get started with the plugin and further documentation is available from http://docs.projectcalico.org
The remaining information is for advanced users.
How to Run It
make run-plugin
Running the plugin in a container requires a few specific options
docker run --rm --net=host --privileged -e CALICO_ETCD_AUTHORITY=$(LOCAL_IP_ENV):2379 -v /run/docker/plugins:/run/docker/plugins -v /var/run/docker.sock:/var/run/docker.sock --name calico-node-libnetwork calico/node-libnetwork /calico
--net=host
Host network is used since the network changes need to occur in the host namespace
privileged
since the plugin creates network interfaces
-e CALICO_ETCD_AUTHORITY=a.b.c.d:2379
to allow the plugin to find a backend datastore for storing information
-v /run/docker/plugins:/run/docker/plugins
allows the docker daemon to discover the plugin
-v /var/run/docker.sock:/var/run/docker.sock
allows the plugin to query the docker daemon
Known limitations
The following is a list of known limitations when using the Calico libnetwork
driver:
- It is not possible to add multiple networks to a single container. However,
once a container endpoint is created, it is possible to manually add
additional Calico profiles to that endpoint (effectively adding the
container into another network).
- IPv6 is not currently supported
Troubleshooting
Logging
Logs are sent to STDOUT. If using Docker these can be viewed with the
docker logs
command.