Docker部署nginx(基础)

前言: 编写docker部署nginx的脚本文件并执行,同时采用持久化存储的方式,对nginx相关目录或文件进行挂载。

Docker部署nginx(基础)

持久化存储

为了能够将nginx配置文件持久化挂载到本地磁盘,建议构建以下目录

  • nginx-data
    • conf
    • html

先进入合适的目录,然后执行: mkdir -p ./nginx-data/{cert,conf,html}

构建nginx-install.sh脚本

#! /bin/bash

# 暂停容器
docker stop nginx_pro   
# 删除容器
docker rm nginx_pro 

# 配置环境变量,{username}替换成自己实际的用户目录
HOME=/home/{username}/docker-data/nginx-data

# 启动一个临时nginx容器,并将相关文件或目录复制到本地磁盘目录中
docker run --detach --name tmp_nginx nginx
sleep 5
docker cp tmp_nginx:/usr/share/nginx/html/ ${HOME}
docker cp tmp_nginx:/etc/nginx/conf.d ${HOME}/conf
docker cp tmp_nginx:/etc/nginx/nginx.conf ${HOME}/conf/nginx.conf

# 停止并销毁临时nginx容器
docker stop tmp_nginx
docker rm tmp_nginx

# 启动nginx,并挂在到相关文件目录
docker run --detach \
--name nginx_pro \
--publish 80:80 \
--publish 443:443 \
--volume ${HOME}/html:/usr/share/nginx/html \
--volume ${HOME}/conf/conf.d:/etc/nginx/conf.d \
--volume ${HOME}/conf/nginx.conf:/etc/nginx/nginx.conf nginx

注意:

  1. 确保HOME变量能定位到正确的位置,理论上该脚本可以重复执行。
  2. docker挂载目录时,该目录下只能包含纯文件,不能包含其它目录。
  3. docker挂载目标文件时,必须使用绝对路径,例如nginx.conf。

执行nginx-install.sh脚本

# 这里有两种执行方式
## 第一种:
## 增加可执行权限
chmod +x nginx-install.sh
## 执行   
./nginx-install.sh  

# 或

## 第二种
## 直接执行
sh nginx-install.sh 

测试

1.检查本地文件是否挂载成功

进入nginx-data目录下,检查conf, conf/conf.d, html目录下是否存在对应的文件

2.查看容器是否正常运行

执行指令:

# 查看正在运行的容器
docker ps   

# 查看所有容器(运行或停止)
docker ps -a    

3.访问网址

3.1 在服务器上可以执行curl localhost测试是否返回网页内容。

3.2 在个人电脑浏览器里可以输入http://iphttp://domain.com访问网页内容。

注意: 如果在服务器上能够访问,个人电脑浏览器无法走公网访问,要检查服务器防火墙是否开放了80端口,以及阿里云服务器安全组是否开放了80端口的访问权限。


转载申明

本文转载自智小约的Docker部署nginx(基础),若转载请注明来源,侵删。

你可能感兴趣的:(Docker部署nginx(基础))