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 : \
-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 : \
-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
}
$
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…" seconds ago Up second 0.0.0.0:->/tcp httpd-php
9c2362b5e32f mysql:latest "docker-entrypoint.s…" seconds ago Up seconds 0.0.0.0:->/tcp, /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
root@9c2362b5e32f:/# chown -R mysql:mysql /var/lib/mysql
root@9c2362b5e32f:/# mysql -uroot -pTest1234
mysql> create database wordpress;
mysql> create user wps@localhost identified by '';
mysql> grant all privileges on wordpress.* to wps@localhost;
mysql> create user wps@172.18.0.1 identified by '';
mysql> grant all privileges on wordpress.* to wps@172.18.0.1;
mysql> alter user wps@172.18.0.1 identified with mysql_native_password by '';
9、配置wordpress博客系统
9.1、下载wordpress包并解压
$ wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz $ tar -zxf wordpress-4.9.-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', ''); /** 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
root@d466d5de8d13:/var/www/html# apt-get update
root@d466d5de8d13:/var/www/html# apt-get install libpng-dev
root@d466d5de8d13:/var/www/html# cd /usr/local/bin/
root@d466d5de8d13:/usr/local/bin# ./docker-php-ext-install gd mysqli
root@d466d5de8d13:/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
docker学习---搭建Docker LAMP环境的更多相关文章
- docker学习---搭建Docker私有库及删除库内镜像
环境准备系统: cat /etc/redhat-release CentOS Linux release (Core) 主机两台,分别是docker私有库服务器(IP 192.168.121.121) ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker-教你如何通过 Docker 快速搭建各种测试环境
今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通 ...
- docker学习5-docker安装tomcat环境和部署war包
前言 tomcat部署web项目非常方便,把war包放到webapps目录就可以了.本篇使用docker快速搭建一个tomcat环境 下载tomcat镜像 拉取官方最新版tomcat镜像 [root@ ...
- PyCharm使用之利用Docker镜像搭建Python开发环境
在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...
- 使用Docker快速搭建PHP开发环境
最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...
- Docker容器搭建android编译环境
Docker容器搭建android编译环境 目录 1 部署容器 1.1 手动部署 1.1.1 配置docker 1.1.2 启动容器 1.1.3 配置环境 1.2 Dockerfile 2 镜像管理 ...
- Docker学习笔记 — Docker私有仓库搭建
Docker学习笔记 — Docker私有仓库搭建 目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2 和Mavan的管理一样,Dockers ...
- Docker学习之Docker容器基本使用
Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...
随机推荐
- 【java】自定义排序
使用Comparable接口 这里定义了一个类Node,有两个属性,id,age. 排序方法是,先根据id升序排,id一样,age降序排. 里面有一个compareTo方法.返回值有三个 1. < ...
- 结对编程(四则运算题目生成器core第七组)对接心得
在这篇博客博主想记录一下此次结队编程作业中与ui组对接的心得.在这里我也想表达一下对涂涵越同学的敬佩,他遇到困难时孜孜不倦求解的毅力着实让我佩服,我们在dll的生成上遇到了很大的困难,要不是他的坚持我 ...
- 一文读懂MQTT协议
1 概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级 ...
- C 编译器的“贪心法”
C语言中有单字符符号和多字符符号之分,那么,当C编译器读入一个字符‘/’后又跟了一个字符‘*’,那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是合起来作为一个符号对待.C语言对这个问题的解 ...
- 服务注册与发现---spring cloud
Eureka基本架构 Register Service :服务注册中心,它是一个 Eureka Server ,提供服务注册和发现的功能. Provider Service :服务提供者,它是 Eur ...
- codeforces 1A
题目大意: 就是在一块长方形地面上铺瓷砖,然后一共要用多少块瓷砖,一块瓷砖被割开后只能用一次,输入长,宽,以及瓷砖边长,求一共需要多少块瓷砖: 基本思路: 这里有个技巧:就长来说,需要(n+k-1)/ ...
- PHP多参数方法的重构
假设我们要完成一个保存文章的功能,如果采用函数编程的方式,大概会是下面这个样子: <?php function saveArticle($title, $content, $categoryId ...
- linux中python3的安装
yum -y install openssl-devel #要使用pip3需要安装这个软件tar xf Python-3.5.6.tgz cd Python-3.5.6 ./configure --p ...
- Delphi CoCreateGuid()函数 获取GUID
Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) GUID/UUID是通过特定算法产生的一个二进制 ...
- 20165239 2018——2019Exp8 Web基础
Exp8 Web基础 基础问题回答 (1)什么是表单 •表单在网页中主要负责数据采集功能. •一个表单有三个基本组成部分: ◦表单标签,这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务 ...