[关闭]
@liuximing 2018-04-10T18:30:21.000000Z 字数 2489 阅读 138

传统LAMP服务Docker化

Web


安装Docker

Mac OS X

Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 Intel MMU 虚拟化的,最低 4GB 内存。如果系统不满足需求,可以考虑安装 Docker Toolbox

Docker ToolBox和Docker for Mac的区别就是它会通过VirtualBox创建一个Linux虚拟机来运行Docker,因此性能上会差一些(但毕竟不会用作生产环境,无所谓了)。笔者的系统是满足要求了,但硬件太老了,只能安装Docker Toolbox。直接从官网下载安装包安装,完成后会看到两个应用图标,分别是命令行工具和图形界面工具。

image.png

打开命令行工具,会看到Docker Toolbox为我们创建的虚拟机的IP地址,后面的操作都将在这个命令行工具下执行。

image.png

Linux - CentOS

Docker 最低支持 CentOS 7。Docker 需要安装在 64 位的平台,并且内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

Docker 官方为了简化安装流程,提供了一套安装脚本,CentOS 系统上可以使用这套脚本安装:

  1. $ curl -sSL https://get.docker.com/ | sh

安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

  1. $ service docker start
  2. $ chkconfig docker on

这里采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法:

  1. $ systemctl start docker.service
  2. $ systemctl enable docker.service

搭建LAMP环境

1. 下载lamp镜像
  1. $ docker pull nickistre/centos-lamp
  2. $ docker images
  3. REPOSITORY TAG IMAGE ID CREATED SIZE
  4. nginx latest b8efb18f159b 2 days ago 107MB
  5. hello-world latest 1815c82652c0 6 weeks ago 1.84kB
  6. nickistre/centos-lamp latest b45f1e1c24ef 14 months ago 538MB
2. 运行lamp容器
  1. $ docker run -d -p 80:80 -p 3306:3306 nickistre/centos-lamp
  2. $ docker ps
  3. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  4. d70bdc21e74d nickistre/centos-lamp "supervisord -n" 8 minutes ago Up 3 seconds 22/tcp, 0.0.0.0:80->80/tcp, 443/tcp, 0.0.0.0:3306->3306/tcp vigilant_wilson
3. 验证:在浏览器输入192.168.99.100:80

image.png

定制LAMP环境

1. 进入lamp容器
  1. $ docker exec -ti d70bdc21e74d bash
  2. [root@d70bdc21e74d /]#
2. 查看版本
  1. # cat /etc/redhat-release
  2. CentOS release 6.6 (Final)
  3. # httpd -v
  4. Server version: Apache/2.2.15 (Unix)
  5. Server built: Mar 22 2016 19:03:53
  6. # php -v
  7. PHP 5.3.3 (cli) (built: Feb 9 2016 10:36:17)
  8. Copyright (c) 1997-2010 The PHP Group
  9. Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
  10. # mysql --help|grep Distrib
  11. mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
3. 定制

编写Dockerfile

  1. # Version 0.1
  2. FROM nickistre/centos-lamp:latest
  3. MAINTAINER liuximing42@gmail.com
  4. # Modify the Apache configuration to support PHP
  5. RUN sed -i "/LoadModule version_module modules/aLoadModule php5_module modules\/libphp5.so" /etc/httpd/conf/httpd.conf
  6. RUN sed -i "/AddType application\/x-gzip .gz .tgz/aAddType application\/x-httpd-php-source .phps" /etc/httpd/conf/httpd.conf
  7. RUN sed -i "/AddType application\/x-gzip .gz .tgz/aAddType application\/x-httpd-php .php" /etc/httpd/conf/httpd.conf
  8. RUN sed -i "s/DirectoryIndex index.html index.html.var/DirectoryIndex index.php index.html index.html.var/g" /etc/httpd/conf/httpd.conf
  9. # Restart Apache
  10. RUN apachectl restart
  11. EXPOSE 80 3306

构建新镜像

  1. $ docker build -t sago/centos-lamp:v0.1 ./
4. 重新运行lamp容器
  1. docker run -d -p 80:80 -p 3306:3306 -v /Volumes/SSD/Applications/MAMP/htdocs/meet-server:/var/www/html sago/centos-lamp:v0.1
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注