Wednesday, March 8, 2017

Docker on Debian Linux - Why and The Install of it All

If you want just the instructions, Skip to the break.  This is here basically so that I can do this again later.

The setting:

For almost all of what I do, I run Linux.  Specifically Debian Linux. 

It runs much faster, has most of the same programs you're used to on a Mac or a Windows PC, and is about as stable as an operating system can be. It can run some Windows programs in Emulation (WINE) but that's not the point. I've got what I need if I stay within Linux, natively.

Some Debian Linux computers have "uptime", time since they were last restarted, in years - not days or weeks. 

I update things when I want.  I make things how I want them.  I change things how I want.  If there is one thing about Linux that Mac and Windows users don't get to do is customize things the way that they want. 

The backstory:

My blog resides in two places.  On and on a Wordpress hosted site at as a backup.

I really don't care for how my Wordpress site looks, so I want to change it.  Being someone with more years in IT Software Development Project Management than I care to admit to, I will do it "offline" and not on the live site.

Furthermore, I have a client in Los Angeles.  His website was developed on Wordpress by me, and I have a backup.  I'm finished with the site, but I thought it might be "fun" to see if I could get it to work here on my own computer.

The reasoning:

My own main computer running Debian I am happy with.  Actually that is an understatement.  I don't want to slow it down by loading up server software, a LAMP stack, and things to slow it all down.   I could create a VMWare or Virtual Box virtual computer and do the LAMP stack there, I've done that a couple times before, but running a full VM for something like this felt "overkill" and "heavyweight".

What Docker Does:

Docker will allow me to share some of my computer by running a pared down version of Linux inside what they call a Container.  It is not a full virtual computer, so it should run faster, and since it is not a full computer it will not effect my apparent speed - in case I forget to "turn the damn thing off at night".

The Goal:

Get a Docker Container up and running.  The container will have a web server and Wordpress software running configured for my use.

Installing Docker:

This is adapted from the official Docker instructions found at this link.

This will get the base Docker software installed on a Debian system.  Your system should be "up to date".  It should be running fairly current software.  As I am writing this March 2017, Docker will run on Debian 7, 8, and 9.  9 being "Stretch" or "Testing" at this point, 8 being "Jessie", and 7 is "Wheezy".

My own personal thought is that if you aren't running at least "Jessie", get yourself upgraded to current software.  After all, within a month or three of this writing, Stretch will become "Stable" and the official up to date current software.  It's easy.  I started with Wheezy, migrated to Jessie, and am currently running Stretch.

Open a terminal session and sign in as root with "su".

Add transport module to allow Docker to grab what it needs via HTTPS:

Add the Docker GPG key:

    curl -fsSL | apt-key add -

Verify that the key ID is 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88.
    apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb)
sub   4096R/F273FCD8 2017-02-22

Add the Docker repository:

    add-apt-repository \
        "deb [arch=amd64] \
        $(lsb_release -cs) \

Update your apt repository lists:

    apt update

 Install Docker:

   apt install docker-ce

At this point, Docker is installed.  They set up a container that you can run to verify it called Hello World.

    docker run hello-world

Docker is installed.  The software will run from the command line, as root.  It can be configured to start automatically by entering in a command:  

    systemctl enable docker

However I have not yet done it because I am not convinced I want to run this every time I boot.  I am being conservative with my system resources, but to be honest I have not noticed it slowing me down in the slightest.   Since I will only be running this intermittently,  I probably will not be running it.

Since this tends to be my own mental scratch pad, the way to disable docker at boot is:
    systemctl disable docker

This and more tweaks to how it runs are found at Docker's own help file for post install.


Obviously, this is something that is incomplete.  I will be returning with more when I go to get my container started.  I need a Container with Debian, a LAMP Stack, and Wordpress.  A ready made version of this exists, and I will try that first - ready made from Docker itself! 

On the other hand, my own normal IT Project Management curiosity tells me that I need to make one on my own.  So I'll work on that later. 

First step, getting it installed, worked.  Next I will get onto that other stuff... later.

No comments:

Post a Comment