内容简介:使用docker-compose构造LAMP环境,其中日志、mysql数据库、mysql配置文件、网站文件均持久化存储到本机。apache、php通过Dockerfile构造,Dockerfile拉取ubuntu镜像,然后安装apache2和php。mysql的话通过docker的links连接mysql:5.5这个镜像当作数据库。
0x00 实现功能
使用docker-compose构造LAMP环境,其中日志、 mysql 数据库、mysql配置文件、网站文件均持久化存储到本机。
apache、 php 通过Dockerfile构造,Dockerfile拉取ubuntu镜像,然后安装apache2和php。
mysql的话通过 docker 的links连接mysql:5.5这个镜像当作数据库。
0x01 文件构造
➜ tree apache apache ├── Dockerfile ├── conf │ └── my.cnf ├── docker-compose.yml ├── log │ ├── apache │ └── mysql ├── mysql ├── src │ ├── init.sh │ └── sources.list └── www └── index.php 7 directories, 6 files
0x02 docker-compose.yml
version: '3' services: apache: image: ubuntu:apache #镜像名为ubuntu,tag为apache container_name: apache #运行后生成的容器名字为apache build: . #使用当前路径下的Dockerfile构造镜像 ports: - "80:80" volumes: - ./www:/var/www/html - ./log/apache:/var/log/apache2 links: - mysql mem_limit: 1024m #最大内存使用不超过1024m restart: always #容器重启策略:当容器终止退出后,总是重启容器,默认策略。 mymysql: image: mysql:5.5 #拉取mysql:5.5 container_name: mysql ports: - "3306:3306" volumes: - ./conf/my.cnf:/etc/my.cnf - ./mysql:/var/lib/mysql - ./log/mysql:/var/log/mysql environment: #设置环境变量 - MYSQL_ROOT_PASSWORD=root #mysql密码为root mem_limit: 1024m #最大内存使用不超过1024m
0x03 Dockerfile
FROM ubuntu:14.04.4 MAINTAINER reber <1070018473@qq.com> ENV AUTO_RUN_DIR /apache_init.d #定义会被容器自动执行的目录 ENV INIT_SHELL init.sh #定义 shell 文件名 COPY ./src /data WORKDIR /data RUN chmod +x init.sh RUN cp sources.list /etc/apt/sources.list && apt-get update RUN apt-get install -y apache2 RUN apt-get install -y php5 php5-gd php5-mysql libapache2-mod-php5 libapache2-mod-auth-mysql RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #设定时区 WORKDIR /var/www/html CMD ["/data/init.sh"] #ENTRYPOINT ["tail","-f","/dev/null"]
0x04 conf/my.cnf
[mysqld] user=mysql default-storage-engine=INNODB character-set-server=utf8 init_connect='SET NAMES utf8' [client] default-character-set=utf8 [mysql] default-character-set=utf8
0x05 src/sources.list
deb http://debian.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse deb http://debian.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse deb http://debian.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse deb http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse deb http://debian.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://debian.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
0x06 src/init.sh
#!/bin/bash service apache2 restart tail -f /dev/null
0x07 www/index.php
<?php //因为使用了links,所以在apache这个容器中可以直接用"mymysql"字符连接数据库, //使用links后其实就是在apache这个容器的hosts文件中添加了"mymysql"字符到mysql容器的ip的映射 $link = mysql_connect("mymysql", "root", "root"); if(!$link) die('Could not connect: ' . mysql_error()); else echo "Successfully connect to the mysql."; mysql_close($link); ?>
0x08 启动后访问
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Java类 静态代码块、构造代码块、构造函数初始化顺序
- TS 的构造签名和构造函数类型是啥?傻傻分不清楚
- 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式)
- 构造函数、原型、原型链、继承
- Vue源码: 构造函数入口
- Hashmap源码解析-构造函数
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。