安装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。直接从官网下载安装包安装,完成后会看到两个应用图标,分别是命令行工具和图形界面工具。
打开命令行工具,会看到Docker Toolbox为我们创建的虚拟机的IP地址,后面的操作都将在这个命令行工具下执行。
Linux - CnetOS
Docker 最低支持 CentOS 7。Docker 需要安装在 64 位的平台,并且内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。
Docker 官方为了简化安装流程,提供了一套安装脚本,CentOS 系统上可以使用这套脚本安装:
$ curl -sSL https://get.docker.com/ | sh
安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
$ service docker start
$ chkconfig docker on
这里采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法:
$ systemctl start docker.service
$ systemctl enable docker.service
搭建LAMP环境
1. 下载lamp镜像
$ docker pull nickistre/centos-lamp
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest b8efb18f159b 2 days ago 107MB
hello-world latest 1815c82652c0 6 weeks ago 1.84kB
nickistre/centos-lamp latest b45f1e1c24ef 14 months ago 538MB
2. 运行lamp容器
$ docker run -d -p 80:80 -p 3306:3306 nickistre/centos-lamp
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
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
定制LAMP环境
1. 进入lamp容器
$ docker exec -ti d70bdc21e74d bash
[root@d70bdc21e74d /]#
2. 查看版本
# cat /etc/redhat-release
CentOS release 6.6 (Final)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Mar 22 2016 19:03:53
# php -v
PHP 5.3.3 (cli) (built: Feb 9 2016 10:36:17)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
# mysql --help|grep Distrib
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
3. 定制
编写Dockerfile
# Version 0.1
FROM nickistre/centos-lamp:latest
MAINTAINER liuximing42@gmail.com
# Modify the Apache configuration to support PHP
RUN sed -i "/LoadModule version_module modules/aLoadModule php5_module modules\/libphp5.so" /etc/httpd/conf/httpd.conf
RUN sed -i "/AddType application\/x-gzip .gz .tgz/aAddType application\/x-httpd-php-source .phps" /etc/httpd/conf/httpd.conf
RUN sed -i "/AddType application\/x-gzip .gz .tgz/aAddType application\/x-httpd-php .php" /etc/httpd/conf/httpd.conf
RUN sed -i "s/DirectoryIndex index.html index.html.var/DirectoryIndex index.php index.html index.html.var/g" /etc/httpd/conf/httpd.conf
# Restart Apache
RUN apachectl restart
EXPOSE 80 3306
构建新镜像
$ docker build -t sago/centos-lamp:v0.1 ./
4. 重新运行lamp容器
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