系统:centos7

使用root账户

开放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

安装docker

yum install docker -y

安装docker-compose

yum install epel-release -y

yum install -y python-pip

pip install --upgrade pip  //更新pip

pip install -U docker-compose

部署nginx+php+mysql

开启docker


systemctl start docker

cd /home

mkdir www //网站目录

mkdir conf //配置文件

mkdir app //下载的应用

//拉取官方镜像

docker pull nginx:1.12.0

docker pull php:5.4-fpm

docker pull mysql:5.6

//下载到/home/app

去php官网下载php5.4.45

nginx官网下载nginx1.12.0

phpmyadmin官网下载phpmyadmin找php对应版本

都下载完并解压完成后,进入php文件

cp php.ini-development /home/conf/php.ini

进入nginx文件

cp conf/nginx.conf /home/conf/nginx.conf

cd /home/conf

vi nginx.conf

location / {
root /usr/share/nginx/html;
index index.html index.php index.htm;
}

location ~ \.php {//去除$
root /var/www/html;
fastcgi_pass fpm:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;  //nginx添加path_info支持
fastcgi_param PATH_INFO $fastcgi_path_info;//nginx添加path_info支持
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

cd /home/app

复制phpmyadmin解压出来的文件到/home/www并改名为phpmyadmin  

//编写docker-compose

cd /home

docker images //查看镜像id

vi docker-compose.yml

version: '2'
services:

php:

image: php镜像id

ports:

- 9000:9000

volumes:

- /home/www:/var/www/html

- /home/conf/php.ini:/usr/local/etc/php/php.ini

links:
       - mysql
   privileged: true

nginx:
   image: nginx镜像id
   ports:
       - 80:80
   volumes:
       - /home/www:/usr/share/nginx/html
       - /home/conf/nginx.conf:/etc/nginx/nginx.conf
   links:
       - php:fpm
   privileged: true

mysql:
   image: mysql镜像id
   ports:
      - 3306:3306
   volumes:
      - /home/data:/var/lib/mysql
   environment:
      - MYSQL_ROOT_PASSWORD=123
   privileged: true

docker-compose编写完成后

执行

docker-compose up -d  //使容器后台运行

docker exec -it home_mysql_1 bash  //进入mysql容器

mysql -u -root -p

密码:123

执行 status

查看 UNIX socket地址并复制

执行use mysql

update user set Host = '%' where User = 'root';

flush privileges;

完成后两次ctrl+d

退出容器

cd /home/conf

vi php.ini

搜索

mysql.default

mysqli.default

pdo_mysql.default

等号后加上复制出来的UNIX socket地址

cd /home

docker-compose restart

cd www

vi index.php

<?php

  phpinfo();

?>

查看php信息

cd phpmyadmin

vi config.sample.inc.php

$cfg['Servers'][$i]['host'] = 'mysql';

退出后config.sample.inc.php改名为config.inc.php

从外部访问 http://ip地址/phpmyadmin/index.php
登录mysql成功后即可完成

docker 部署 nginx+php+mysql的更多相关文章

  1. 使用docker部署nginx+tomcat架构(2):访问mysql数据库

    上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进 ...

  2. 使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

    经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构():访问mysql数据库 不过, ...

  3. Docker部署Nginx并修改配置文件

    Docker部署Nginx并修改配置文件 一.拉取nginx镜像 docker pull nginx 二.在宿主机中创建挂载目录 mkdir -p /data/nginx/{conf,conf.d,h ...

  4. Docker部署Nginx应用(2)

    Docker部署Nginx应用(2) 1.拉取Nginx镜像 [root@localhost ~]# docker pull nginx Using default tag: latest lates ...

  5. docker(部署常见应用):docker部署nginx

    上回说到centos安装docker. 这次用实战,docker部署运行常见的应用. docker常用命令 参看:docker命令大全.这里不做赘述. docker部署nginx 1.docker h ...

  6. docker 部署nginx 使用keepalived 部署高可用

    一.体系架构 在Keepalived + Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故 ...

  7. Docker部署Nginx启动成功,浏览器拒绝访问

    今天下午部署完tomcat和mysql之后就接着部署Nginx,本以为Nginx也和之前两个一样简单,但是就因为标题这个问题,花费了我一个小时纠错. 过程复现: 解决完上一篇博客(https://ww ...

  8. 【原创】大数据基础之Mesos+Marathon+Docker部署nginx

    一 安装 安装docker:https://www.cnblogs.com/barneywill/p/10343091.html安装mesos:https://www.cnblogs.com/barn ...

  9. docker创建nginx+php-fpm+mysql环境(一分钟搭建lnmp)

    下载镜像 docker pull bitnami/php-fpm #下载php-fpm镜像 docker pull nginx #下载nginx镜像docker pull mysql:5.5.59 # ...

随机推荐

  1. python爬虫之趟雷

    python爬虫之趟雷整理 雷一:URLError 问题具体描述:urllib.error.URLError: <urlopen error [Errno 11004] getaddrinfo ...

  2. PIE SDK打开长时间序列数据

    1. 功能简介 时间序列数据(time series data)是在不同时间上收集到的数据,这类数据是按时间顺序收集到的,用于所描述现象随时间变化的情况.当前随着遥感卫星技术日新月异的发展,遥感卫星的 ...

  3. 修改TrustedInstaller权限文件

    我们在删除文件的时候有可能出现无法删除,并且需要TrustedInstaller提供的权限,所以我们主要修改该文件的拥有者(修改为本机用户)即可.下文举例哦,方法如下: 总结起来:修改文件的所有着为本 ...

  4. 设计模式学习总结(七)适配器模式(Adapter)

    适配器模式主要是通过适配器来实现接口的统一,如要实现国内手机在国外充电,则需要在不同的国家采用不同的适配器来进行兼容! 一.示例展示: 以下例子主要通过给笔记本电脑添加类似手机打电话和发短信的功能来详 ...

  5. Activemq API使用(不整合spring)

    首先需要引入activemq的jar包,这里用的是5.14.4版本的 <!-- https://mvnrepository.com/artifact/org.apache.activemq/ac ...

  6. mapper mysl实现批量插入 更新

    1.批量插入 <insert id="insertConfirm" parameterType="java.util.List"> insert i ...

  7. vue中src下的assets文件与static文件的几点区别

    区别一: assets文件时src下的,所以最后运行时需要进行打包:而static文件不需要打包就直接放在最终的文件中了. 区别二: assets中的文件在.vue中的template/style下用 ...

  8. GitHub(hexo)博客页面访问量错误以及中文乱码解决

    如果访问量不显示(乱码形状),是因为不蒜子域名更新,所以你的域名也需要更新 <script async src="//busuanzi.ibruce.info/busuanzi/2.3 ...

  9. 使用awstat分析Nginx的访问日志

    在我的上一篇文章<使用 Nginx 提升网站访问速度>中介绍了 Nginx 这个 HTTP 服务器以及如何通过它来加速网站的访问速度.在实际的网站运营中,我们经常需要了解到网站的访问情况, ...

  10. java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE 的理解

    [2013-12-06 11:06:21,715] [C3P0PooledConnectionPoolManager[identityToken->2tl0n98y1iwg7cbdzzq7a|7 ...