测试环境

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# docker --version
Docker version 1.13.1, build 0be3e21/1.13.1

构建过程如下

环境准备

[root@localhost ~]# mkdir lamp     //创建工作目录
[root@localhost ~]# cd lamp/   //进入目录
确保有如下的文件存在
[root@localhost lamp]# ll
总用量 8900
-rw-r--r--. 1 root root    1572 12月  1 2016 CentOS7-Base-163.repo   //163的源
-rw-r--r--. 1 root root     412 11月 30 10:59 Dockerfile   //dockerfile文件
-rw-r--r--. 1 root root   11763 11月 30 10:59 httpd.conf   //httpd主配置文件
-rw-r--r--. 1 root root     753 11月 30 10:19 my.cnf   //数据库主配置文件
-rw-r--r--. 1 root root     287 11月 30 10:40 run.sh  //启动服务的脚本
-rw-r--r--. 1 root root 9082696 11月 30 10:14 wordpress-4.9.4-zh_CN.tar.gz   //博客系统

Dockerfile文件内容如下

FROM centos:centos7.5.1804    //指定基础镜像  可以自定义
MAINTAINER ceshi   //指定名称以及作者
RUN rm -rf /etc/yum.repos.d/*    //删除原有的镜像
COPY *.repo /etc/yum.repos.d/    //将163镜像拷贝到指定目录
COPY my.cnf /etc/my.cnf    //复制my.cnf 文件到指定目录
COPY run.sh /run.sh     //复制启动脚本到指定目录
RUN chmod +x /run.sh    //给脚本赋予执行权限
RUN yum install -y httpd mariadb-server php php-mysql php-fpm && mysql_install_db --user=root   //安装lamp环境相关软件包以及初始化数据库操作
ADD  wordpress-4.9.4-zh_CN.tar.gz /var/www/html   //将博客系统解压并复制到指定目录
COPY httpd.conf /etc/httpd/conf/httpd.conf   //复制httpd配置文件到指定目录
ENV LC_ALL en_US.UTF-8     //设置数据库的字符集 让数据库支持中文
EXPOSE 80 3306 9000    //暴露端口号
CMD ["./run.sh"]    //运行脚本

httpd.conf文件内容如下

针对于这个配置文件,我们只需要修改一处内容即可(提前下载httpd服务获取到的httpd.conf文件)
   119 DocumentRoot "/var/www/html/wordpress"
将默认的网站发布目录修改为WordPress的路径即可

my.cnf文件内容如下

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

添加如上的信息即可

run.sh文件内容如下

#!/bin/bash
mysqld_safe --user=root &   //启动数据库 后台启动
sleep 3     //延迟3秒
mysql -e "create database wordpress;"   //创建数据库
mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123';"  //创建root用户以及密码
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by '123';"   //赋权操作
sleep 3
httpd -DFOREGROUND  &   //启动httpd服务 后台启动
sleep 3
php-fpm   //启动php 前提运行

注:设置服务启动的时候,必须要存在一个前台运行的服务或者使用tail -f 生成实时文件存在
不然,上面设置数据库 以及 httpd 服务的后台运行会自动停掉,就会导致这个容器启动不了

生成镜像操作

[root@localhost lamp]# docker build -t centos_lamp:v1.0 .
[root@localhost lamp]# docker images   //查看生成是否成功
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos_lamp         v1.0                932bc4270eac        9 minutes ago       555 MB

启动测试
[root@localhost lamp]# docker run -itd --name lamp -P lamp:v8.0   
88d0fda56147f53a4ee061985ad7634b9f38bed48b44192c156edab4858cd048
[root@localhost lamp]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                                                     NAMES
88d0fda56147        lamp:v8.0           "./run.sh"          5 seconds ago       Up 3 seconds        0.0.0.0:32785->80/tcp, 0.0.0.0:32784->3306/tcp, 0.0.0.0:32783->9000/tcp   lamp

-P 使用随机端口映射

浏览器访问测试

1panel onlyoffice docker 搭建 docker搭建lamp_docker


配置WordPress

1panel onlyoffice docker 搭建 docker搭建lamp_数据库_02


输入好数据库root账户密码后点击提交即可

这里需要我们自行创建一个文件

需进入容器然后进入WordPress目录创建即可

docker exec -it lamp /bin/bash

1panel onlyoffice docker 搭建 docker搭建lamp_centos_03


配置基本信息

1panel onlyoffice docker 搭建 docker搭建lamp_数据库_04


登录测试

1panel onlyoffice docker 搭建 docker搭建lamp_docker_05


整个操作就此完成,效果达到