前言
公司的測試服務(wù)器想快速安裝一個(gè)NGINX,由于之前沒有安裝過,在網(wǎng)上找了一大堆教程,結(jié)果不是這有問題,就是哪有問題,應(yīng)該是我操作的姿勢不對(duì).無奈就在宿主機(jī)上裝了個(gè)NGINX(不想在公司里浪費(fèi)太多時(shí)間在這個(gè)事情上),周末找了個(gè)時(shí)間,自己搞一波,完整教程.3min完事.上步驟.
docker 安裝NGINX
- 搜索NGINX鏡像
docker search nginx
- 拉取最新鏡像
docker pull nginx:latest
- 啟動(dòng)一個(gè)NGINX容器
# 這里先啟動(dòng)一個(gè),需要拷貝里面的文件,最后可把該容器刪除
docker run --name nginxtest -p 9091:80 -d nginx:latest
- 查看容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
98d6a3f26f5f nginx:latest "/docker-entrypoint.…" 12 minutes ago Up 12 minutes 0.0.0.0:9091->80/tcp, :::9091->80/tcp nginxtest
- 進(jìn)入容器命令: docker exec -it nginxtest bash
- 創(chuàng)建目錄(一會(huì)映射使用)
mkdir -p /alidata/appserver/docker/nginx/www (這里可以存放一些靜態(tài)文件)
mkdir -p /alidata/appserver/docker/nginx/logs (日志目錄)
mkdir -p /alidata/appserver/docker/nginx/conf.d (所有nginx配置放這里就行以.conf結(jié)尾)
- 拷貝剛剛?cè)萜骼锏呐渲梦募ginx.conf, html文件, 以及default.conf文件
docker cp 98d6a3f26f5f:/etc/nginx/nginx.conf /alidata/appserver/docker/nginx
docker cp 98d6a3f26f5f:/usr/share/nginx/html/index.html /alidata/appserver/docker/nginx/www
docker cp 98d6a3f26f5f:/etc/nginx/conf.d/default.conf /alidata/appserver/docker/nginx/conf.d/
- 另起一個(gè)容器,把配置文件映射出來(端口需要提前預(yù)留好)
docker run --name nginx -p 9092:80 -d \
-v /alidata/appserver/docker/nginx/www:/usr/share/nginx/html \
-v /alidata/appserver/docker/nginx/logs:/var/log/nginx \
-v /alidata/appserver/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /alidata/appserver/docker/nginx/conf.d:/etc/nginx/conf.d \
--privileged=true \
nginx:latest
- 不需要每次都映射端口號(hào)(和宿主機(jī)共享端口),加 --net=host
docker run --name nginx --net=host -d \
-v /alidata/appserver/docker/nginx/www:/usr/share/nginx/html \
-v /alidata/appserver/docker/nginx/logs:/var/log/nginx \
-v /alidata/appserver/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /alidata/appserver/docker/nginx/conf.d:/etc/nginx/conf.d \
--privileged=true \
nginx:latest
- 最后就可刪除,我們剛開始啟動(dòng)的容器了
docker stop 98d6a3f26f5f
docker rm 98d6a3f26f5f