参考:https://pkg.phpcomposer.com/
http://avnpc.com/pages/build-php-develop-env-by-docker
一. 创建镜像
1. 创建php镜像
下载地址:https://getcomposer.org/download/composer.phar
https://pecl.php.net/package/redis
https://hub.docker.com/_/php/ 官网安装扩展
根目录
---/php
---/php.ini
---/php-fpm.conf
---/Dockerfile
编辑Dockerfile
FROM php:7.0.18-fpm
MAINTAINER 360638747@qq.com ADD php.ini /usr/local/etc/php/php.ini ADD php-fpm.conf /usr/local/etc/php-fpm.conf
COPY redis.tgz /home/redis.tgz RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ &&docker-php-ext-install gd \ && docker-php-ext-install pdo_mysql \ && docker-php-ext-install mysqli \ && pecl install /home/redis.tgz && echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini ADD composer.phar /usr/local/bin/composer RUN chmod 755 /usr/local/bin/composer
WORKDIR /var/www/html RUN usermod -u 1000 www-data
VOLUME ["/var/www/html"] |
在构建过程中做了这样一些事情:
1)复制php和php-fpm配置文件到相应目录
2)复制redis-3.1.2.tgz扩展源代码到/home ,更名redis.tgz
3)通过docker-php-ext-install安装GD和PDO扩展
4)通过pecl安装Redis扩展
5)复制composer到镜像作为全局指令
构建镜像,进入php目录下,注意最后又一个点
运行镜像
docker run -it --name phpfpm \ -p 9000:9000 \ -v /work:/var/www/html \ --privileged=true \ -d -it myphp |
2.创建nginx 镜像
根目录
---/nginx
---/conf.d/default.conf
---/Dockerfile
编辑Dockerfile
From daocloud.io/nginx:1.12.0
ADD conf.d/* /etc/nginx/conf.d/ |
构建一下镜像 ,需要进入nginx目录,主要后面有个点
docker build -t eva/nginx . |
-p 80:80 \ --link phpfpm:php \ -v /work:/usr/share/nginx/html \ –v /work/nginx/conf.d:/etc/nginx/conf.d \ --volumes-from phpfpm \ --privileged=true \ -d -it eva/nginx |
3.创建redis镜像
参考http://www.tuicool.com/articles/qU7z6jm
http://www.runoob.com/docker/docker-install-redis.html
http://hub.daocloud.io/repos/beb958f9-ffb6-4f68-817b-c17e1ff476c3
根目录
---/redis
---/Dockerfile
FROM daocloud.io/redis:3.2
COPY redis.conf /usr/local/etc/redis/redis.conf |
构建一下镜像 ,需要进入redis目录,主要后面有个点
docker build -t eva/redis . |
运行创建容器命令 进入redis目录
docker run--name redis -p 6379:6379 -v $PWD/data:/data -d redis:3.2 redis-server --appendonly yes
测试redis链接是否成功
docker run -it redis:3.2 redis-cli-h 172.17.0.1
查看容器ip
docker inspect--format='{{.NetworkSettings.IPAddress}}' $CONTAINER_ID
可视化的redis 管理器
https://redisdesktop.com/download
在主机上访问 http://192.168.99.100/redis.php
坑: 容器对外的ip地址 就是 192.168.99.100
二.
一. 推送到docker hub上
1. docker-mashine ssh default
2. dockerlogin
3. docker tag 本地镜像名 hub上镜像名
4. docker push hub上镜像名