- This topic has 4 replies, 2 voices, and was last updated 2 years, 8 months ago by .
Viewing 5 posts - 1 through 5 (of 5 total)
Viewing 5 posts - 1 through 5 (of 5 total)
- You must be logged in to reply to this topic.
Home › Forums › FABRIC General Questions and Discussion › Create a slice with the custom docker image
Hello,
I have a question that if we could create a node with our customize docker image on Fabric. We have a image file called ndn-dpdk-builder, and we want to create a node using this image. I saw Fabric has a docker repository that allows to build and publish the images to the FABRIC Testbed Docker Hub. I was wondering if we publish our image file to the FABRIC Testbed Docker Hub, then we would have the ndn-dpdk-builder image as a option when we create nodes. If not, is there a possibility that we could achieve this?
Thanks,
Xusheng
We are working on a way to streamline deployment of docker images into VMs on FABRIC. Watch for some coming updates to the FABLib library.
The way to do this is to boot a VM then pull the docker image from somewhere like DockerHub. You can do this yourself right now.
In fablib you can do something like:
node1.execute("sudo apt-get -y install docker.io")
node1.execute("docker pull <docker hub image name>")
node1.ececute("docker run .... ")
Note that on IPv6 site you will need specify the IPv6 docker hub registry like this:
docker pull registry.ipv6.docker.com/<image name>
More info on DockerHub and IPv6 is here: https://www.docker.com/blog/beta-ipv6-support-on-docker-hub-registry/
Hello Paul,
Thanks for the information. I’m able to run command docker pull registry.ipv6.docker.com/<image name>
on the node I created. So one possible way is that I could run docker run <my image>
to get the VM on that node?
In addition, I was wondering if we could set node_name = 'Node1'
image = '<my image>'
when we configure Experiment Parameters of a slice.
Thanks,
Xusheng
You won’t be able to say image=<my_docker_image>
. The lowest level abstraction needs to be a VM.
We are working on a feature for fablib where you will be able to say something like (this is not ready yet):
node1 = slice.add_node(name='Node1', image='default_ubuntu_20', docker='<docker_hub_image_name>')
This would create a VM with the default unbuntu 20 image then automatically run a docker container in the VM using that docker image. In general, the philosophy is that VMs are good for multiplexing hardware and containers are good for packaging software.
Thanks so much for the clarification.