Home  >  Article  >  Operation and Maintenance  >  What is lamp in docker

What is lamp in docker

青灯夜游
青灯夜游Original
2022-02-08 16:44:293413browse

In docker, LAMP refers to a combination of Linux (operating system), Apache HTTP server, MySQL (database software such as MariaDB) and PHP (Perl or Python), which is generally used to establish a Web server environment.

What is lamp in docker

The operating environment of this tutorial: linux5.9.8 system, docker-1.13.1 version, Dell G3 computer.

LAMP refers to the combination of Linux (operating system), Apache HTTP server, MySQL (sometimes also refers to MariaDB, database software) and PHP (sometimes also refers to Perl or Python), which is generally very suitable for building Web Server environment.

The following describes how to use Docker to build a container containing LAMP components.

Download LAMP image

Search for LAMP images that are collected or used frequently on Docker Hub. The author recommends choosing the tutum/lamp image:

# sudo docker search -s 10 lamp
tutum/lamp              Out-of-the-box LAMP image (PHP+MySQL)           67 

执行docker pull命令,下载镜像:
 # sudo docker pull tutum/lamp

Use the default method to start the LAMP container

Use the downloaded image to start a container and map the container's 8080 port and 3306 port:

# sudo docker run -d -p 8080:80 -p 3306:3306 tutum/lamp
# docker ps
使用curl命令测试,可以查看到默认的应用已经启动:
# curl http://127.0.0.1:8080

Deploy your own PHP Application

The default container starts a helloword application. Readers can edit the Dockerfile to create a custom LAMP application image based on this image.

Create a new working directory lamp on the host host:

# mkdir lamp
# cd lamp
# touch Dockerfile

Create a Dockerfile file in the php directory with the content:

FROM tutum/lamp:latest
RUN rm -fr /app &&git clone https://github.com/username/customapp.git /app
#这里将https://github.com/username/customapp.git 地址替换为你自己的项目地址
EXPOSE 80 3306CMD ["/run.sh"]

Create a mirror and name it dockerpool/ my-lamp-app:

# docker build -t dockerpool/my-lamp-app .
利用新创建镜像启动容器,注意启动时候指定-d参数,让容器后台运行:
# docker run -d -p 8080:80 -p 3306:3306 dockerpool/my-lamp-app
在本地主机上使用curl看一下自己的应用程序是不是已经正确启动:
# curl http://127.0.0.1:8080/

Connect to the database in the PHP program

1. Access the MySQL database in the container

Downloaded tutum/lamp The MySQL database in the image already has the default root user, and local connections do not require a password, so accessing the database in code is very simple:

<?php
$mysql = new mysqli("localhost", "root");
echo "MySQL Server info: ".$mysql->host_info;
?>

2. Access the MySQL database outside the container

The default MySQL database does not support root user remote login, so the MySQL database cannot be directly accessed by the root user outside the container.
When you start a container using the tutum/lamp image for the first time, it will automatically create a MySQL user named admin and generate a random password. This password can be obtained using the docker logs command:

# sudo docker logs 9cb

Note that the admin user has the same permissions as root.

Recommended learning: "docker video tutorial"

The above is the detailed content of What is lamp in docker. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn