DOCKER下安装NGINX部署多站点
学习DOCKER部署NGINX步骤
问题难点,docker run 一个NGINX后,马上就是existed状态,可以查看运行容器的错误日志
docker logs 容器ID
我也是看了这里的日志里描述的错误,才知道问题在哪里,之前试过几次都是卡这里不知道错误是什么。
配置不对都会是existed,因为容器起不来,不是起来了在自动退出,因为加了-d后台运行了也不得。
1、安装DOCKER
yum install docker
#启动docker
systemctl start docker
#关闭DOCKER
systemctl stop docker
#重启DOCKER
systemctl restart docker
#查看DOCKER状态
systemctl status docker
2、从官网PULL NGINX
docker pull nginx
#查看拉取的镜像
docker images
3、开始搬砖
# 创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx
重新挂载NGINX容器
#单行模式
docker run -p 9002:80 --name nginx --privileged=true -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx
#--privileged=true 使DOCKER中的账户具有真正ROOT权限
至此单个站点挂载成功,可以在宿主机访问http://宿主机IP:9002
修改/home/nginx/html下的index.html可看到页面随之变化。
配置多站点的情况
在站点目录下新建新建目录WEB2,新建index.html文件
mkdir /home/nginx/html/web2
cp /home/nginx/html/index.html /home/nginx/html/web2/index.html
在配置目录下新建XX.conf,配置如下
server
{
listen 8080;
server_name localhsot;
root /usr/share/nginx/html/web2;
index index.html;
}
#新建第二个容器
docker run -p 8080:8080 --name nginx --privileged=true -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html/web2:/usr/share/nginx/html/web2 -d nginx