mac下边安装docker,地址是 https://download.docker.com/mac/stable/Docker.dmg
在命令行下用 brew install git 进行安装,也可以参考下面的文档进行安装:
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
CentOS下安装就简单了,直接使用yum安装docker和docker-compose即可,如遇到缺少某些工具包,直接yum安装一下!
* 创建一个项目的目录,做为项目根目录,如/site/
* 在项目根目录下创建docker目录,存放不同环境下的配置文件及各server的配置;
如:
conf:开发环境下配置文件存放目录
conf-online:线上环境
conf-test:测试环境
php.dockerfile : Docker下的PHP安装配置项;内容如下:(以下注释的两行附近上下两行可替换,根据当前系统环境不同,如编译安装时报错,可尝试替换一下再试)
FROM php:7.1-fpm
MAINTAINER aggrelxf <aggrelxf@163.com>
# 更换成国内快的 apt-get 源
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak \
&& echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" > /etc/apt/sources.list \
&& echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >> /etc/apt/sources.list \
&& echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list \
&& echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >> /etc/apt/sources.list
# RUN apt-get autoremove && apt-get update -y && apt-get upgrade -y && apt-get install -y build-essential libpq-dev nodejs
RUN apt-get autoremove && apt-get update -y && apt-get upgrade -y
# RUN apt-get install -y libz-dev zlib1g=1:1.2.8.dfsg-2+b1 libpng12-dev libjpeg-dev libfreetype6-dev \
RUN apt-get install -y --allow-downgrades libz-dev zlib1g=1:1.2.8.dfsg-2+b1 libpng12-dev libjpeg-dev libfreetype6-dev \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ \
--with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install gd mysqli pdo_mysql zip opcache bcmath
# 安装 redis 扩展
ENV PHPREDIS_VERSION 4.0.2
RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/$PHPREDIS_VERSION.tar.gz \
&& tar xfz /tmp/redis.tar.gz \
&& rm -r /tmp/redis.tar.gz \
&& mkdir -p /usr/src/php/ext \
&& mv phpredis-$PHPREDIS_VERSION /usr/src/php/ext/redis \
&& docker-php-ext-install redis
RUN rm -rf /usr/src/php
php.ini :PHP配置文件
php.log :日志
web.conf:nginx配置
* 根目录下创建docker-compose.yml文件,编辑docker中的所有server使用的配置,内容如下:
因项目使用的是阿里云的mysql和redis,因此以下未安装两项服务,如需安装,将下边注释去掉即可;
version: '3'
services:
web:
image: nginx:latest
restart: always
ports:
- 5880:80
- 3390:80
volumes:
- ./:/site
- ./docker/web.conf:/etc/nginx/conf.d/default.conf
networks:
- local
php:
build:
context: ./docker
dockerfile: php.dockerfile
restart: always
volumes:
- ./:/site
- ./docker/php.ini:/usr/local/etc/php/conf.d/php.ini
- ./docker/php.log:/usr/local/etc/php/php.log
networks:
- local
env_file: .env
# redis:
# image: redis:4.0.2
# restart: always
# command: ["redis-server", "--appendonly", "yes"]
# ports:
# - 5879:6379
# volumes:
# - ./docker-data/redis:/var/lib/redis
# hostname: redis
# networks:
# - local
# mysql:
# image: mysql:5.7
# restart: always
# command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# environment:
# MYSQL_DATABASE: thinkcmf5
# MYSQL_ROOT_PASSWORD: 111111
# volumes:
# - ./docker-data/mysql:/var/lib/mysql
# - ./sql:/sql
# ports:
# - 5806:3306
# networks:
# - local
networks:
local:
driver: bridge
以上配置完成,在项目的根目录,运行 docker-compose up -d,会自动下载、build、安装一些东西,不过都是安装在 docker 自己的缓存里,docker 会自动管理
运行完 docker-compose up -d 之后,然后就可以开发了,php、mysql、redis、nginx 全部已经运行了
然后访问 http://localhost:5880/
看到phpinfo界面,就算成功了
运行 docker images 可以查看你本机都下载了哪些镜像
用 docker ps 可以查看当前正在运行的所有容器
* 查看某个容器的日志信息:docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1
--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f : 查看实时日志
-t : 查看日志产生的日期
-tail=10 : 查看最后的10条日志。
edu_web_1 : 容器名称
docker-compose rm : 此命令删除所有停止中的docker-compose run运行的进程
docker-compose ps : 可看此命令运行的各实例中的进程状态;如果都是exits 状态,即可 rm 直接删除;
docer ps : 查看所有docker各容器进程;