How to install Docker and deploy a LAMP Stack
Updated by Linode
DeprecatedThis guide has been deprecated and is no longer being maintained.
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.
Due to a known issue with the dependencies of the docker .deb, installing docker on a Debian/Ubuntu VM requires an additional step:
apt-get install dmsetup && dmsetup mknodes
Use the Docker-maintained install script for Debian or Ubuntu. For other operating systems, see the Docker Installation guides.
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:
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 or OverlayFS. If you require AUFS support, you will need to configure a distribution supplied or custom compiled kernel.
If necessary, add the non-root user to the “docker” group:
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.
Search for linode user images:
sudo docker search linode
Download the linode/lamp image:
sudo docker pull linode/lamp
Run the Docker Container, Apache, and MySQL
When an image downloads, there are no image containers running.
Run, create, or turn on a new container and forward port 80:
sudo docker run -p 80:80 -t -i linode/lamp /bin/bash
CautionThis command also changes the terminal prompt to the root user within the new container.
As the container’s root user, start Apache:
service apache2 start
service mysql start
Exit the container while leaving it running by pressing
ctrl + pthen
ctrl + q.
Enter the IP address in a web browser to test the site.
NoteThe website’s root directory is
Congratulations, you have installed a configured LAMP stack using Docker!
Where to Find Configuration Settings
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.
- Node.js Web Server Deployed within Docker
- Use One-Time Passwords for Two-Factor Authentication with SSH on Ubuntu 16.04 and Debian 8
- Obtain a Commercially Signed SSL Certificate on Debian & Ubuntu
- How to Configure a Firewall with UFW
- LAMP on Debian 8 (Jessie)
This guide is published under a CC BY-ND 4.0 license.