Mac和CentOS下使用Docker - LNMP笔记

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 

# 更换成国内快的 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各容器进程;

 

 

你可能感兴趣的:(linux,macos)