1.docker最小化搭建nginx nginx-1.12-alpine

来源:互联网 发布:发达国家粉碎机 知乎 编辑:程序博客网 时间:2024/06/15 03:40
相关环境
    操作系统   :OS X EI Capitan 10.11.6
    docker版本 : Version 17.06.0-ce-mac19
    镜像版本   :
    mysql               5.6                          298MB
    redis               4.0-alpine                 27.5MB
    php                 5.6.31-fpm-alpine     53.9MB
    nginx               1.12-alpine               15.5MB

配置文件存放目录
/Docker
    /nginx
           /conf
            /logs
            /wwwroot
        
一、创建自定义网络

    创建一个自定义的桥接网络,可以固定ip地址,避免每次重启容器都要改变其IP地址
  docker network create --subnet=172.18.0.0/16 mynetwork
    查看是否创建成功
docker network ls




二、创建一个nginx参考容器,用于复制里面的nginx配置

docker run --name mynginx --net mynetwork --ip 172.18.0.8 -p 80:80 -d nginx:1.12-alpine
dockerfile文件地址:https://github.com/nginxinc/docker-nginx/blob/7e278fff2f12f852ef1be2aed17e9a2f822365ac/stable/alpine/Dockerfile#L24
将nginx的配置文件全部复制到nginx/conf目录下
1.进入conf目录
2.开始复制nginx配置文件
docker cp mynginx2:/etc/nginx/ ./
注:这里会复制到一半停下来,容器中/etc/nginx目录下的modules目录是软链接
手动复制继续复制

docker cp mynginx2:/usr/lib/nginx/modules modulesdocker cp mynginx2:/usr/lib/nginx/nginx.conf nginx.confdocker cp mynginx2:/etc/nginx/nginx.conf nginx.confdocker cp mynginx2:/etc/nginx/nginx.conf.default nginx.conf.defaultdocker cp mynginx2:/etc/nginx/scgi_params scgi_paramsdocker cp mynginx2:/etc/nginx/scgi_params.default scgi_params.defaultdocker cp mynginx2:/etc/nginx/uwsgi_params uwsgi_paramsdocker cp mynginx2:/etc/nginx/uwsgi_params.default uwsgi_params.defaultdocker cp mynginx2:/etc/nginx/win-utf win-utf

3.停止参考容器

docker stop  mynginx2docker rm  mynginx2

4.运行正式容器

cd ../nginxdocker run -itd --name nginx --net mynetwork --ip 172.18.0.8 -p 80:80 -d -v $PWD/conf:/etc/nginx -v $PWD/logs:/var/log/nginx -v $PWD/wwwroot:/www nginx:1.12-alpine

注:-v 是目录或者文件映射 这里将nginx容器中的nginx配置文件、日志目录映射宿主机的nginx/conf、nginx/logs目录,在nginx容器的根目录创建了一个www目录映射对应nginx的网站根目录  ( $PWD表示当前目录)
5.在本机访问localhost
curl localhost
访问成功!

再看看宿主机的日志目录
tail logs/access.log

6.修改nginx配置 localhost的文件定义
 /nginx/conf/conf.d/default.conf 将文件路径改成/www 对应宿主机的wwwroot目录

7.重启nginx 容器
docker restart nginx
在wwwroot目录下建立一个index.html 文件,并编辑输入hello world !, 再次访问localhost


原创粉丝点击