Pair Docker and Ghost for the perfect platform to run your blog!
Find out more about Ghost here
Ghost is an elegant and minimal blogging platform that focus on simplicity. One of its most attractive features is its Markdown editor. It's also fully hackable running on Node.js with the Handlebars view-engine.
This project is work-in-progress but all the blog images are fully working
Ghost 1.0 was released in July 2017 you can find the Dockerfile here and a Getting Started blog post here.
For now I'd still recommend using Ghost 0.11.x which has better support for running in Docker under a known configuration. Check back soon for more on Ghost 1.0.
The rest of these instructions are for the version of Ghost running at https://blog.alexellis.io and many other sites.
You can pull the ARMv7 image (for PI2/3) straight from the Docker Hub docker pull alexellis2/ghost-on-arm:armv7
. The image for your PC, laptop or cloud host is - alexellis2/ghost-on-docker:latest
.
To get the latest and greatest versions you can build your own image using the Dockerfile provided. If you'd like to help maintain or test new versions please do so through pull requests.
Please support the project by giving it a Star.
These are all based upon Node 4.x, pick the architecture for your computer/server. If you are using a regular PC it will be the first option marked x86_x64. Each image has been pushed to the Docker hub, the npm
modules alone for Ghost take up around 500MB, but the download will be faster than a fresh build if you use a Raspberry PI.
Regular PC/Laptop - x86_x64
Example usage:
$ docker run --name blog -d -p 80:2368 alexellis2/ghost-on-docker:latest
Or use the recently added Docker Compose file for even less fuss:
$ docker-compose up -d
ARMv7 (Raspberry PI 2 / 3)
Example usage:
$ docker run --name blog -d -p 80:2368 alexellis2/ghost-on-docker:armv7
ARMv6 (Raspberry PI A/B/B+/Zero)
Example usage:
$ docker run --name blog -d -p 80:2368 alexellis2/ghost-on-docker:armv6
One of the simplest ways you can benchmark your blog is to use Apache Bench. It has a very simple CLI, here's an example load:
On the Docker host:
$ docker run --name blog -d -p 80:2368 alexellis2/ghost-on-docker:latest
5c71cdf984fefc7b508e8ee0f0d82c389ee492a339f7df23be95a61e83340156
From another PC:
$ ab -c 4 -n 1000 http://192.168.0.240/
-c 4
means 4 concurrent requests, simulating three users hitting the page at exactly the same time-n 1000
means 1000 requests, so each of the 4 users will hit the page a portion of that time. i.e. 250 requests each.You can play with the numbers to see how the blog performs under different conditions, you could also try typing in docker stats
to see what kind of load the Docker container is creating.
Boost your site's performance and save money with NGinx
Keeping Shipping your blog with Docker volumes
There is also an example docker-compose.yml file in this repository which you can use as a template for mounting a persistent volume.
Head over to my blog and post a comment/question, or if you've found a bug raise an issue on Github.
Start learning today with a dozen progressive labs with my Hands-on Docker tutorial