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.
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!