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 <[email protected]>
# 更換成國內快的 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各容器進程;