文章目錄

通过Docker 构建PHP+Apache+MySQL 开发环境,所有的服务(Apache,MySQL)和语言环境(PHP)都将在容器中运行,代码编写在宿主机内编写,并在宿主机的浏览器进行查看和debug

准备工作

构建镜像和创建容器

该教程主要做了以下工作

1.构建好了名为daocloud.io/mysql:5.5的镜像,并由该镜像创建了一个名为some-mysql的容器,并设置容器some-mysql的Mysql管理员密码为my-secret-pw,运行在后台。

2.基于镜像daocloud.io/php:5.6-apache 创建名为some-app的容器,并通过 Docker 容器间的 link机制,便可将 MySQL 的默认端口(3306)暴露给应用容器。

检查工作

接下来进入容器some-app,由于容器some-app已经在后台运行,所以我们可以通过命令进入容器的命令行界面,进入容器命令:1$ docker exec -it some-app /bin/bash

进入容器后首先检查容器PHP应用是否运行正常,执行命令1$ curl http://localhost

如果运行正常,应该会有html标签内容输出,如果有提示MySQL连接错误等提示,应检查PHP应用数据库配置是否正确,该容器PHP应用默认在/var/wwww/html/目录中,打开DB.php文件,检查数据库配置参数,并配置正确(数据库名字、用户名、密码),与容器some-mysql中配置一一对应。

自定义开发环境

通过端口映射,宿主机使用浏览器访问容器的PHP应用

由于Docker容器内并不包含图形浏览器应用,所以无法在容器内查看网页富文本内容。但我们可以通过端口映射的方式,通过宿主机的浏览器访问容器中PHP应用,命令行如下:1$ docker run --name some-app -p 127.0.0.1:80:80 --link some-mysql -d daocloud.io/php:5.6-apache

-p 127.0.0.1:80:80 表示将宿主ip与容器内ip端口进行映射

在本地机器填写代码和调试

容器some-appPHP应用目录默认在/var/www/html中,如果想要更改目录,比如我想在/var/下创建PHP开发目录php,则需要在/var/目录下创建php文件夹,命令如下:1$ mkdir /var/php

创建好目录后还需要更改Apache的配置中的网站根目录位置,由于镜像daocloud.io/php:5.6-apache是基于Ubuntu发行版本,所以Apache配置文件应该在/etc/apache2目录中,修改文件/etc/apache2/sites-available/000-default.conf、/etc/apache2/sites-available/default-ssl.conf,将内容DocumentRoot /var/wwww/html改为DocumentRoot /var/php,修改文件/etc/apache2/apache2.conf,将内容改为

修改好后重启Apache服务,命令如下:1$ apache2ctl restart

PS:重启apache服务可能导致退出容器,但不用担心,可以通过命令重新连接到容器中,命令如下:1$ docker exec -it some-app /bin/bash

重启后使用命令curl http://localhost检测是否已更改目录。

通过目录挂载方式将本地机器目录与容器目录进行挂载,将开发目录挂载到容器中,方便查看修改内容,具体命令如下:1$ docker run --name some-app -p 127.0.0.1:80:80 -v [本地目录]:[容器目录] --link some-mysql -d daocloud.io/php:5.6-apache

-v [本地目录]:[容器目录] 举个栗子: -v ~/dev/php:/var/php

最后

通过以上步骤,我们终于构建好开发环境了,以后如果要迁移到别的电脑中开发,只需要将修改的镜像迁移过去就可以了,其实整篇教程最终的命令是这个:1$ docker run --name some-app -p 127.0.0.1:80:80 -v [本地目录]:[容器目录] --link some-mysql -d daocloud.io/php:5.6-apache

这条命令包含了容器链接、端口映射、目录挂载,如果怕麻烦的话可以将这条命令写到脚本文件中,要使用时修改一下执行就好了。

最后不要忘记将容器

docker mysql开发环境_Docker 构建PHP+Apache+MySQL 开发环境相关推荐

  1. linux 下升级apache,CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache...

    CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache 由于最近工作中遇到了一个在比较老旧RedHat系Linux发行版系统上升级安装Apache ...

  2. docker mysql 生产环境_Docker构建MySQL环境

    一.运行 MySQL 容器 根据镜像说明可知: 默认的配置文件是:/etc/mysql/my.cnf 默认的数据目录是:/var/lib/mysql 最简单的启动方式: docker run -d - ...

  3. docker java 最小镜像_docker构建JDK最小镜像

    一.构建最小JDK 1.解压jre # mv jre-8u181-linux-x64.tar.gz java1.8.tar.gz # tar -xvcf jre-8u181-linux-x64.tar ...

  4. apache mysql php 安装配置_Windows下Apache,MySql,PHP安装配置

    本文目标 在Windows8.1 x64下 全手工安装Apache.PHP.MySQL,使用NetBeans调试第一个Hello,World!程序. 安装Apache 打开http://httpd.a ...

  5. xampp apache mysql配置_安装xampp(Apache+MySQL+PHP+PERL)

    ------------恢复内容开始------------ 安装过程种碰到的问题: 一.Apache无法启动--1.配置Apache,在config进行修改,把httpd.conf中的80端口全部修 ...

  6. mysql简单部署_Docker部署简单的mysql

    ![Docker远征](https://img.tnblog.net/arcimg/hb/656ec4beace04f5e9a7b1d58b6368639.jpg "Docker远征&quo ...

  7. CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

    转自:http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.html 一.简介 什么是LAMP     LAMP是一种Web网络应用和开发环 ...

  8. xampp php搭建失败,ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败),thinkphpxampp...

    ThinkPHP框架搭建及常见问题(XAMPP安装失败.Apache/MySQL启动失败),thinkphpxampp 本文为大家详细分享了搭建ThinkPHP框架时遇到的问题,为大家提供了解决方法, ...

  9. Apache+MySQL+PHP安装指南

    L.A.M.P.(Linux, Apache, MySQL, PPH) 是开源软件的黄金组合,几乎每一个Linux的开发或管理人员都会有机会接触到LAMP,"怎么安装?"是问得最多 ...

最新文章

  1. 使用命令接口对KVM虚拟机进行简单的管理
  2. 初探maven插件机制
  3. ZOJ 3829 贪心 思维题
  4. reactjs生命周期回调(钩子)函数:componentDidMount componentWillUnmount
  5. java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
  6. SAP Spartacus Page Layout - 页面布局设计
  7. MFC工作笔记0001---认识MFC
  8. CGLIB实现AOP,MethodInterceptor接口和Enhancer详解——Spring AOP(四)
  9. 求助ET服装打版软件
  10. 字节跳动-大数据研发面试准备
  11. 配置Skype for business 2015混合部署
  12. Unikernels 解读
  13. 闪马智能创始人兼CEO彭垚入选2021年度张江杰出人才拟表彰名单
  14. esp8266介绍和使用
  15. 《近匠》从Cubieboard到radxa:汤亮的第二次硬件创业
  16. Python 点滴 V
  17. 游戏编程之四 diectxdarw基础篇
  18. 百度云盘不限速下载工具(附带开源源码)
  19. 智微JMS901成功量产,附JMS901量产工具软件+固件+教程分享
  20. 机器人EV3初级、中级、高级课程课件

热门文章

  1. linux 内核加载错误 Invalid module format
  2. linux centos yum错误 You could try using --skip-broken to work around the problem
  3. Shodan API使用指南 撒旦网
  4. CentOS6安装devtoolset(使用高版本gcc)GCC 4.8 GCC 4.9 GCC 5.2
  5. DUILib 中的通知事件
  6. TCP、UDP绑定同一端口通信的解释
  7. Web服务器的工作原理
  8. WEB 容器、WEB服务和应用服务器的区别与联系
  9. 调试寄存器(debug registers, DRx)理论及实践
  10. xen tools代码结构