This will be a mess until I figure it all out. In this article, I will demonstrate using tools such as packer, docker client, docker-machine to build out a Docker host with an HTPC stack. The following applications will be used:
- HTPC Manager
- Transmission web interface
- Couch Potato
I will be using the latest Ubuntu 14.04 server distribution. This is being developed on Mac OSX Yosemite 10.10.2.
This is a WIP and will be complete when it is complete. Some of these tools I have not used yet and am learning as I go!
Expect many changes as I figure this out!
You will need the following tools to start:
This article assumes you have installed, and are familiar with the above tools.
I have created a root directory named htpc where all project files will reside.
The Docker Host
First create a new Docker host with the docker-machine command:
docker-machine create --driver virtualbox htpc
Now, point your docker client at the new Docker host:
$(docker-machine env htpc)
Docker hub contains thousands of community made images. Searching the hub for a Sickbeard image returns many results. I chose maxexcloo/sickbeard for this example. It is Debian based. First, we need to pull the image.
docker pull maxexcloo/sickbeard
Now run it:
docker $(docker-machine config htpc) run -d -p 8081:8081 --name="sickbeard" maxexcloo/sickbeard
This command will expose port 8081 and run the image in daemon mode (detached).
the –name”” argument provides a nice name that will show up in the NAME column from the output of docker ps. If this argument is not suppled, a random name will be generated.
We are almost finished. To find the IP of the Docker host:
Finally, you can point your browser at http://<docker host ip>:8081.
As with Sickbeard, this container will be run similarly.
docker pull maxexcloo/sabnzbd
docker $(docker-machine config htpc) run -d -p 8080:8080 –name=”sabnzbd” maxexcloo/sabnzbd
Running docker ps will show something like this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b432e5cbf6df maxexcloo/sabnzbd:latest "/bin/sh -c /config/ 5 seconds ago Up 4 seconds 0.0.0.0:8080->8080/tcp pensive_ritchie
dbcd9f132908 maxexcloo/sickbeard:latest "/bin/sh -c /config/ 5 minutes ago Up 5 minutes 0.0.0.0:8081->8081/tcp suspicious_tesla
We now have a Docker host running two images!
If this all works out as intended, possibly use vagrant-managed-servers to build out a server that already has an OS on it.
Make my own images.