How to install Docker and deploy a LAMP Stack

Updated by Linode

Contribute on GitHub

View Project | View File | Edit File

Docker is a container platform for applications. With Docker, users can download pre-configured apps without the hassle of the installation and configuration process. Docker containers can also build on each other.

If you are familiar with Docker containers, also try Linode Images to capture and deploy larger system profiles.

Install Docker

Use the Docker-maintained install script for Debian or Ubuntu. For other operating systems, see the Docker Installation guides.

  1. Run:

    1
    curl -sSL https://get.docker.com/ | sh
    

    The current version of the docker script checks for AUFS support and displays the warning below if support is not found:

    1
    2
    3
    4
    Warning: current kernel is not supported by the linux-image-extra-virtual
      package.  We have no AUFS support.  Consider installing the packages
      linux-image-virtual kernel and linux-image-extra-virtual for AUFS support.
      + sleep 10
    

    This message can be safely ignored, as the script will continue the installation using DeviceMapper. If you require AUFS support, you will need to configure a distribution supplied or custom compiled kernel.

  2. If necessary, add the non-root user to the “docker” group:

    1
    sudo usermod -aG docker example_user
    

Download the Docker Lamp Image

The Docker Hub user page for Linode can be accessed here. Select the lamp image for configuration information.

  1. Search for linode user images:

    1
    sudo docker search linode
    
  2. Download the linode/lamp image:

    1
    sudo docker pull linode/lamp
    

Run the Docker Container, Apache, and MySQL

When an image downloads, there are no image containers running.

  1. Run, create, or turn on a new container and forward port 80:

    1
    sudo docker run -p 80:80 -t -i linode/lamp /bin/bash
    

    This command also changes the terminal prompt to the root user within the new container.

  2. As the container’s root user, start Apache:

    1
    service apache2 start
    
  3. Start MySQL:

    1
    service mysql start
    
  4. Exit the container while leaving it running by pressing ctrl + p then ctrl + q.

  5. Enter the IP address in a web browser to test the site.

    The website’s root directory is /var/www/example.com/public_html/.

Congratulations, you have installed a configured LAMP stack using Docker!

Where to Find Configuration Settings

The LAMP image was installed using the Hosting a Website guide on a Ubuntu container. The configuration files and settings can be found there, or on the Docker Hub linode/lamp page.

More Information

You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.

This guide is published under a CC BY-ND 4.0 license.