window10下 docker创建web镜像

来源:互联网 发布:微信连接不了网络 编辑:程序博客网 时间:2024/06/05 07:08

参考: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 build -t myphp .   

运行镜像

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 .

 

运行创建容器命令

docker run --name 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上镜像名