第二节 Docker安装nginx

亮子 2021-08-01 03:50:13 18025 0 0 0

1、下载镜像

docker pull nginx:1.17.8

图片alt

2、查看镜像

docker images

图片alt

3、测试镜像

sudo docker run --name nginx -p 9091:80 -d nginx:1.17.8
docker ps

图片alt

如果使用的是云服务器,还需要设置一下安全组和防火墙,这里就不在复述了。具体访问测试如下:

图片alt

4、容器部署

1)、在宿主机创建3个目录

# 1、创建www目录
mkdir -p /server/nginx/html
# 2、创建日志目录
mkdir -p /server/nginx/logs
# 3、创建配置目录
mkdir -p /server/nginx/conf

图片alt

2)、拷贝配置文件

## 拷贝配置文件
docker cp nginx:/etc/nginx/nginx.conf /server/nginx/conf

图片alt

3)、删除测试容器

在正式创建容器之前,需要把原有的测试运行的容器删除,否则就会出现端口占用的问题。

# 停止容器
docker stop nginx

# 删除容器
docker rm nginx

图片alt

4)、正式运行

## 映射容器目录
docker run -d -p 9091:80 --name nginx -v /server/nginx/html:/usr/share/nginx/html -v /server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /server/nginx/logs:/var/log/nginx --privileged=true nginx:1.17.8

## 映射多个端口
docker run -d -p 80:80 -p 443:443 --name nginx -v /server/nginx/html:/usr/share/nginx/html -v /server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /server/nginx/logs:/var/log/nginx --privileged=true nginx:1.17.8

图片alt

5)、测试访问

由于我们把容器内的 /usr/share/nginx/html 目录映射到了宿主机,所以我们需要在宿主机的 /server/nginx/html目录下,创建一个index.html文件,这样在测试访问的时候,才不至于找不到默认页面而出错。

<!doctype html>
<html lang="zh-CN">
  <head>
    <!-- 必须的 meta 标签 -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap 的 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-olOxEXxDwd20BlATUibkEnjPN3sVq2YWmYOnsMYutq7X8YcUdD6y/1I+f+ZOq/47" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>
    <h1>Hello, world!</h1>

    <!-- JavaScript 文件是可选的。从以下两种建议中选择一个即可! -->

    <!-- 选项 1:jQuery 和 Bootstrap 集成包(集成了 Popper) -->
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-NU/T4JKmgovMiPaK2GP9Y+TVBQxiaiYFJB6igFtfExinKlzVruIK6XtKqxCGXwCG" crossorigin="anonymous"></script>

    <!-- 选项 2:Popper 和 Bootstrap 的 JS 插件各自独立 -->
    <!--
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-qtoqgtVysUOibC/YeVgpOyLJpelAT1DHvg98mYHqq8ofXEmNEjaNqOZwnMKxlXCy" crossorigin="anonymous"></script>
    -->
  </body>
</html>

运行效果如下:

图片alt