Nginx是大規模互聯網服務的最佳前端服務器,在Web服務、正向代理、反向代理、負載均衡等方面大量應用。Docker容器技術這兩年超級火爆,能夠實現快速的應用服務器部署。下面介紹經過Docker快速部署Nginx服務的方法,既能夠用於大規模集羣,也能夠用於小規模服務、內部網站和我的網站的服務發佈。html
運行下面的腳本:前端
docker run --name nginx -d -p 80:80 tutum/nginx
而後到瀏覽器輸入http://localhost ,便可看到缺省的結果。nginx
--name nginx
,該參數命名容器實例的名字,便於使用 docker rm -f nginx
直接刪除。git
如今,咱們進去看一下容器裏面的配置,運行:github
docker exec -it nginx /bin/bash
缺省的Nginx安裝在var/lib/nginx下,配置在etc/nginx下面,包括nginx.conf主配置文件,conf.d和site-enabled是附加的配置文件。後面,咱們將會該目錄映射到宿主機目錄,以便於修改和管理。docker
在宿主機創建一個目錄app,而後將其映射到容器nginx的/app目錄。/app目錄在容器的缺省配置文件 /etc/nginx/site-enabled 中已經將/app設爲缺省的網站根目錄了。vim
運行以下命令:瀏覽器
docker run --name nginx -d -p 80:80 \ -v /home/username/app /app \ tutum/nginx
而後到/home/username/app下建立一個index.htm文件,隨便寫點啥(vim index.htm)。再去刷新瀏覽器,能夠看到剛纔寫入的內容了。若是沒有看到,試試 docker logs nginx,看看日誌。安全
在宿主機創建sites-enabled,而後映射到容器的/etc/nginx/sites-enabled/。注意下面的命令要使用絕對路徑,將/.../sites-enabled/換成本身的絕對路徑。 進目錄/.../sites-enabled/,創建default配置文件。內容爲標準的nginx配置文件,如:bash
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /app; index index.html index.htm; server_name localhost; location / { try_files $uri $uri/ =404; } }
上面這個文件是tutum/nginx裏面的/etc/nginx/sites-enabled/default文件內容。
而後,運行以下命令:
docker run --name nginx -d -p 80:80 \ -v /.../sites-enabled/:/etc/nginx/sites-enabled/ -v /home/username/app:/app \ tutum/nginx
上面是使用命令行運行,下面將這些參數放到Dockerfile裏面,而後運行docker build就能夠生成本身的衍生鏡像,放到本身的Docker Registry倉庫裏面運行。
FROM tutum/nginx ADD sites-enabled/ /etc/nginx/sites-enabled/ ADD app/ /app/ EXPOSE 80