赞
踩
Docker是一个跨平台的轻量级虚拟机,可移植性非常高,一次部署,终生可用。Docker可以在Linux,Windows,MacOS等平台上安装使用。我们都知道Linux有很多不同 的版本,例如Ubuntu,AIX,CentOS,Debian,Fedora,Oracle Linux,Red Hat Enterprise Linux,openSUSE and SUSE Linux Enterprise等。尽管Linux的版本很多,但是我们的Docker都可以在他们在面运行。
首先查看可用的nginx:
docker search nginx
$docker pull nginx
一般默认都是latest
执行命令查看是否安装成功:
docker images
docker run --name myNginx -p 8080:80 -d nginx
参数说明:
-name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。
docker ps -a ### 所有容器,包括未运行
上面我们通过将本地8080端口映射到docker容器的80端口上实现了nginx的访问。一般为了方便修改和配置,我们将配置文件挂载到本地磁盘上。
一般情况下docker启动时进行配置,只要把配置文件的目录挂载出来就可以,但是nginx却是先加载一个主配置文件nginx.conf,在nginx.conf里再加载conf.d目录下的子配置文件(一般最少一个default.conf文件)。
docker拉取下来的nginx配置文件路径一般情况下是:
日志文件位置:/var/log/nginx
配置文件位置: /etc/nginx
资源存放的位置: /usr/share/nginx/html
所以本地创建对应的目录,并将目录挂在到docker容器的nginx上。
mkdir -p /Users/moon/Documents/docker/nginx/log
mkdir -p /Users/moon/Documents/docker/nginx/html
mkdir -p /Users/moon/Documents/docker/nginx/conf
mkdir -p /Users/moon/Documents/docker/nginx/conf.d(注意:这是文件夹)
mkdir -p 递归创建目录
docker cp myNginx:/etc/nginx/nginx.conf /Users/moon/Documents/nginx/conf/nginx.conf
docker cp myNginx:/etc/nginx/conf.d/default.conf /Users/moon/Documents/docker/nginx/conf/conf.d/default.conf
docker run --name myNginx -p 8080:80 -v /Users/moon/Documents/nginx/config/nginx.conf:/etc/nginx/nginx.conf -v /Users/moon/Documents/nginx/config/conf.d:/etc/nginx/conf.d -v /Users/moon/Documents/nginx/logs:/var/log/nginx -v /Users/moon/Documents/docker/nginx/html:/usr/share/nginx/html -d nginx
参数说明:
- 第一个“-v”,是nginx日志位置,把ngixn日志放到挂载到的目录下
- 第二个“-v”,是项目位置,把项目放到挂载到的目录下即可
- 第三个“-v”,是挂载的主配置文件"nginx.conf",注意"nginx.conf"文件内有一行 “include /etc/nginx/conf.d/*.conf;” , 这个include指向了子配置文件的路径,此处注意include后所跟的路径一定不能出错
- 第四个“-v”,把docker内子配置文件的路径也挂载了出来,注意要与 “2.” 中include指向路径一致
- nginx.conf是挂载了一个文件(docker是不推荐这样用的),conf.d挂载的是一个目录
docker inspect myNginx | grep Mounts -A 200
到这里为止我们就可以随意的修改我们的nginx了,在本地的html文件夹和conf.d中任意增加代码和配置,在docker容器中重新启动nginx就可以了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。