Mac下使用Docker安装Nginx

/ 0评 / 0

在 Mac 下,我们可以通过安装 Docker DesktopKitematic 工具以图形化界面管理 Docker 。不过,我通过 Kitematic 安装了几个 Nginx 容器,发现并没有同时帮我们映射 Nginx 配置文件目录和站点目录。所以需要我们手动安装和映射我们需要的目录,之后再通过 Kitematic 工具管理。

Docker Desktop: https://www.docker.com/products/docker-desktop

Kitematic : https://kitematic.com/

下载官方镜像

搜索 Nginx 镜像列表:

docker search nginx

拉取 Nginx 官方镜像:

docker pull nginx

查看本地已经安装的镜像,如果有我们刚拉取的镜像:

docker images

拷贝 Nginx 配置

在宿主机创建用于存放 Nginx 配置文件和站点的目录。

/Users/feng/Documents/Kitematic 目录是我本机用于存放 Nginx 相关配置的目录,也是 Mac 下 Kitematic 默认的容器配置映射目录,方便统一管理 Docker 容器。

根据下图所示,我们先在 Kitematic 目录下新建 nginx 目录,并在 nginx 目录下创建 conf.dwww 目录。

然后创建 Nginx 临时容器,用于拷贝所需配置文件:

docker run --name tmp-nginx-container -d nginx

拷贝 Nginx 配置文件:

docker cp tmp-nginx-container:/etc/nginx/nginx.conf /Users/feng/Documents/Kitematic/nginx/nginx.conf

拷贝站点配置文件:

docker cp tmp-nginx-container:/etc/nginx/conf.d/default.conf /Users/feng/Documents/Kitematic/nginx/conf.d/default.conf

删除 Nginx 临时容器:

docker rm -f tmp-nginx-container

拷贝完成后的目录结构:

创建 Nginx 容器

创建 Nginx 容器,并映射 Nginx 配置文件站点配置文件目录网站根目录

docker run --name nginx -p 80:80 -v /Users/feng/Documents/Kitematic/nginx/nginx.conf:/etc/nginx/nginx.conf -v /Users/feng/Documents/Kitematic/nginx/conf.d:/etc/nginx/conf.d -v /Users/feng/Documents/Kitematic/nginx/www:/www -d nginx

至此,安装 Nginx 容器完成。

测试

拷贝 default.conftest.conf ,并修改 server_name 和 root 目录:

server {
    listen       80;
    server_name  www.test.com;

    location / {
        root   /www/test;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

修改本地 /etc/hosts 文件,添加:

127.0.0.1 www.test.com

在本地 /Users/feng/Documents/Kitematic/nginx/www 下新建 test 目录,并编写一个 html 测试文件。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <h1>测试Nginx</h1>
</body>

</html>

重启 Nginx 测试:

提示:可以进入 Nginx 容器再重启 Nginx ,也可以直接重启 Nginx 容器。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注