docker学习---搭建Docker LAMP环境

1、环境

系统版本:CentOS Linux release 7.4.1708

docker版本:docker-ce-18.09

主机IP:192.168.121.121

2、载入MySQL和PHP镜像

$ docker pull mysql

$ docker pull php:7.2-apache

3、创建网络

$ docker network create lamp
6549dbc105bba9e51d4d0b13df7ae17916c3628f5a07c81551203fb63c15892e

查看网络

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
be6ab252106a        bridge              bridge              local
3f26bc9f85e3        host                host                local
6549dbc105bb        lamp                bridge              local
7f2db0f13ffc        none                null                local

4、创建生成mysql和php容器的脚本

$ vi docker_lamp.sh

#!/bin/bash
function mysql()
{
docker run --name mysql --net lamp -p 3306:3306 -v /data/docker/mysql/data:/var/lib/mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -v /data/docker/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=Test1234 -d mysql:latest --character-set-server=utf8
}

function httpd_php()
{
docker run --name httpd-php --net lamp -p 80:80 -v /data/docker/httpd/conf:/etc/apache2/sites-enabled -v /data/docker/www:/var/www/html -v /data/docker/httpd/logs:/var/log/apache2 -d php:7.2-apache
}
$1

5、启动mysql和php容器

$ sh docker_lamp.sh mysql
9c2362b5e32f24bd9e21ae13f8accb6d35c359621dc5b5e36a273d1e64424920

$ sh docker_lamp.sh httpd_php
d466d5de8d133343d3e591b598c4f5b5958618e47f841ebfeaa81cae56ad6139

查看容器

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
d466d5de8d13        php:7.2-apache      "docker-php-entrypoi…"   3 seconds ago       Up 1 second         0.0.0.0:80->80/tcp                  httpd-php
9c2362b5e32f        mysql:latest        "docker-entrypoint.s…"   24 seconds ago      Up 22 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

6、写测试页面进行测试

为目录赋权

# chown -R dkuser:dkuser /data

写测试页面

$ echo "<?php phpinfo();?>" > /data/docker/www/index.php

浏览器访问地址 192.168.121.121 ,出现 PHP 的页面就说明是OK的。

7、修改mysql密码加密方式为mysql_native_password

$ vi /data/docker/mysql/conf/docker_mysql.conf
[mysqld]
default-authentication-plugin=mysql_native_password

8、数据库操作

登陆mysql容器,创建、配置wordpress数据库

$ docker exec -it mysql /bin/bash
[email protected]:/# chown -R mysql:mysql /var/lib/mysql
[email protected]:/# mysql -uroot -pTest1234
mysql> create database wordpress;
mysql> create user [email protected] identified by ‘123456‘;
mysql> grant all privileges on wordpress.* to [email protected];
mysql> create user [email protected]172.18.0.1 identified by ‘123456‘;
mysql> grant all privileges on wordpress.* to [email protected]172.18.0.1;
mysql> alter user [email protected]172.18.0.1 identified with mysql_native_password by ‘123456‘;

9、配置wordpress博客系统

9.1、下载wordpress包并解压

$ wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

$ tar -zxf wordpress-4.9.4-zh_CN.tar.gz -C /data/docker/www

9.2、修改wordpress配置

$ cd /data/docker/www/wordpress/
$ vi wp-config-sample.php

/** WordPress数据库的名称 */
define(‘DB_NAME‘, ‘wordpress‘);

/** MySQL数据库用户名 */
define(‘DB_USER‘, ‘wps‘);

/** MySQL数据库密码 */
define(‘DB_PASSWORD‘, ‘123456‘);

/** MySQL主机 */
define(‘DB_HOST‘, ‘192.168.121.121‘);

/** 创建数据表时默认的文字编码 */
define(‘DB_CHARSET‘, ‘utf8‘);

/** 数据库整理类型。如不确定请勿更改 */
define(‘DB_COLLATE‘, ‘‘);

$ mv wp-config-sample.php wp-config.php

9.3、修复问题

从PHP5.0开始不推荐使用mysql_connect()函数,从PHP7.0开始就废弃了该函数,替代的函数是mysqli_connect(),下面是解决办法:

进入php容器安装mysqli扩展

$ docker exec -it httpd-php /bin/bash
[email protected]:/var/www/html# apt-get update
[email protected]:/var/www/html# apt-get install libpng-dev
[email protected]:/var/www/html# cd /usr/local/bin/
[email protected]:/usr/local/bin# ./docker-php-ext-install gd mysqli
[email protected]:/usr/local/bin# ./docker-php-ext-enable gd mysql

退出容器,重启容器

$ docker restart httpd-php

替换方法

$ cd /data/docker/www/wordpress
$ sed -i "s/mysql_connect/mysqli_connect/g" wp-includes/wp-db.php

9.4、打开wordpress页面进行配置

打开页面 http://192.168.121.121/wordpress ---> 在出现的页面点击 “现在就开始”  ---> 填写下面所示的数据库信息:

数据库名 wordpress
用户名 wps
密码 123456
数据库主机 192.168.121.121
表前缀 wp_

---> 点击 “安装WordPress” ---> 点击 “登陆” ---> 使用账户和密码登陆博客,之后就可以进入博客页面,进而对博客进行管理了。

参考:

https://blog.51cto.com/andyxu/2177116

原文地址:https://www.cnblogs.com/xiaoxiaozhou/p/11277184.html

时间: 2024-08-04 13:46:42

docker学习---搭建Docker LAMP环境的相关文章

一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏

原文:一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏 欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.exception.site 小哈今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是小哈在工作中经常用到的,其中包括 Mysql

Docker-教你如何通过 Docker 快速搭建各种测试环境

今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通过几行命令秒秒钟就能轻松搞定.友情提示:搭建之前,你需要先安装 Docker 哟,本文基于您已经安装好 Docker 的基础上!废话少说,正文开始! 一.镜像加速 Docker 默认是从官方镜像地址 Docker Hub 下下载镜像,由于服务器在国外的缘故,导致经常下载速度非常慢.为了提升镜像的下载

docker学习4-docker安装tomcat环境和部署war包

前言 tomcat部署web项目非常方便,把war包放到webapps目录就可以了.本篇使用docker快速搭建一个tomcat环境 下载tomcat镜像 拉取官方最新版tomcat镜像 [[email protected] ~]# docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat 6f2f362378c5: Pull complete 494c27a8a6b8: Pull compl

Docker秒搭建Php7开发环境

原文:Docker秒搭建Php7开发环境 一直听说Docker比较厉害,但是一直没有了解,今天在哔哩哔哩上刷了一下入门课后,简直发现新大陆般,Docker的强大真的了解太晚了.这篇使用Docker搭建php7环境的文章需要一点入门知识.下面开始. 环境 首先安装Docker,无论你是Windows还是Linux.MocOS都可以.安装Docker自行百度. Docker镜像源 访问https://hub.docker.com即可,它是镜像大仓库. 安装Ngnix镜像 输入: docker pul

Docker学习之Docker容器基本使用

Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:docker container start containerid 停止:docker container stop containerid 重启:docker container restart containerid 查看后台运行的容器的日志 命令格式:docker container logs

基于 Docker 快速搭建 Oracle 开发环境

要给开发人员搭建 Oracle 测试环境,准备基于 Docker 构建,同时建立一个 Docker 私有仓库,谁需要就让他装一个 Docker,才从这私有仓库 pull 镜像即可. 环境如下: CentOS 7 docker-ce-18.03.1.ce-1.el7.centos.x86_64Oracle 12c 安装Docker # step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 #

jenkins+docker+portainer搭建持续集成环境

该demo基于centos7环境 说明: 准备2台以上服务器,该demo准备了master和node两台服务器192.168.10.17(master) 192.168.10.16(node) 所有服务器均安装docke jenkins portainer安装在master节点上 eureka和zuul网关部署在master节点上 springboot-service-a/springboot-service-b/springboot-service-c部署在node节点上 网关作为同一的访问入

Docker学习笔记 — Docker仓库

基本概念 仓库是集中存放镜像的地方. Docker Hub Docker Hub是Docker官方维护的一个公共仓库. 执行docker login命令登录,本地用户目录下的.dockercfg文件中保存了用户的认证信息. 使用docker search命令查找官方仓库中的镜像,使用docker pull命令下载镜像到本地. 私有仓库的搭建 — 使用Docer-registry 通常从官方维护的中央仓库下载镜像会比较慢,或者公司内部想搭建一个私有的仓库以供内部人员使用,此时我们可以使用官方提供的

centos搭建LNMP+LAMP环境+(jdk+tomcat+mysql)

第一部分LNMP环境搭建 一.编译安装nginx1.10.3 1.准备 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_6