In this screencast I demonstrate running Pulp as a set of Docker containers. Pulp is a repository management platform that now supports Docker images via a plugin. Porting the Pulp services to containers made sense given its service-oriented architecture.
This screencast will be following the quickstart guide found on pulpproject.org. http://wwww.pulpproject.org https://github.com/aweiteka/pulp/blob/docker_quickstart/docs/sphinx/user-guide/docker-quickstart.rst
This diagram shows the containers and how they interact. There are separate containers for the apache web server, mongodb, qpid messaging and the distributed task queue. There is also a container for the docker registry end-point called crane.
-
We'll be running pulp on a RHEL7 VM. Any red hat-based distribution such as fedora or centos should also work. It has not been tested on debian-based distros.
cat /etc/redhat-release
-
Ensure docker daemon is running
sudo systemctl status docker
-
Pulp requires several TCP ports are open to incoming traffic. We'll use firewall-command to open the ports but iptables could also be used.
sudo firewall-cmd --permanent --add-service http sudo firewall-cmd --permanent --add-service https sudo firewall-cmd --permanent --add-port 27017/tcp sudo firewall-cmd --permanent --add-port 5672/tcp sudo firewall-cmd --reload
-
We've provided a simple install script to pull down the images and start the containers.
curl -O https://github.com/aweiteka/pulp-dockerfiles/tree/master/centos/install_server.sh
-
Before running the install script we'll need the host's IP address.
hostname -i
-
The IP address is the first argument to the install script
bash install_server.sh $(hostname -i)
-
The installer pulls down 7 images from the docker hub. This takes a while but only needs to be performed once. I have already downloaded the images to speed up the screencast. With the install script complete we can view the images.
sudo docker images
-
Now let's look at the containers that are running.
$ sudo docker ps -a
-
Pulp is now ready for content. See my other screencast for installing the remote client tools and publishing docker images.
It appears that the reference for point 4 should be directed to
https://github.com/aweiteka/pulp-dockerfiles/blob/master/centos/install_pulp_server.sh