Docker 安装 Nginx

Docker 安装 Nginx


docker pull nginx 命令安装

查找 Docker Hub 上的 nginx 镜像:

docker search nginx

这里我们拉取官方的镜像

docker pull nginx

等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像

docker images nginx

以下命令使用 Nginx 默认的配置,来启动一个 Nginx 容器实例

docker run --name nginx-test1 -p 8081:80 -d nginx

  • nginx-test1 容器名称
  • -d 设置容器在后台一直运行
  • -p 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口(host portcontainer port

执行以上命令会生成一串字符串,类似 13afb35cbc98ebd8ad451f0fda9bec24e814916c1e929b89363e7ca92c1746eb,这个表示容器的 ID,一般可作为日志的文件名。

我们可以使用 docker ps 命令查看容器是否有在运行:

docker ps 

PORTS 部分表示端口映射本地的 8081 端口映射到容器内部的 80 端口。

在浏览器中打开 http://机器IP:8081/,效果如下:


nginx 部署

首先,创建目录 nginx, 用于存放后面的相关东西:

mkdir -p ./nginx/www ./nginx/logs ./nginx/conf

拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器 ID 可以查看 docker ps 命令输入中的第一列:

docker cp 13afb35cbc98:/etc/nginx/nginx.conf ./nginx/conf

  • www: 目录将映射为 nginx 容器配置的虚拟目录
  • logs:  目录将映射为 nginx 容器的日志目录
  • conf:  目录里的配置文件将映射为 nginx 容器的配置文件

部署命令

docker run -d -p 8081:80 --name nginx-web-test -v /opt/miracleTest/nginx/www:/usr/share/nginx/html -v /opt/miracleTest/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/miracleTest/nginx/logs:/var/log/nginx nginx

或者

docker run -d -p 8081:80 --name nginx-web-test -v $PWD/nginx/www:/usr/share/nginx/html -v $PWD/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/nginx/logs:/var/log/nginx nginx

此命令中的机器目录要是全路径!!

命令说明:

  • -p 8081:80 将主机的 8081 端口 映射到 容器的 80 端口

  • --name nginx-web-test将容器命名为 nginx-web-test

  • -v $PWD/nginx/www:/usr/share/nginx/html将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html

  • -v $PWD/nginx/conf/nginx.conf:/etc/nginx/nginx.conf将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf

  • -v $PWD/nginx/logs:/var/log/nginx将我们自己创建的 logs 挂载到容器的 /var/log/nginx

启动以上命令后进入 ./nginx/www 目录:

cd $PWD/nginx/www

创建 index.html 文件,内容如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Docker Nginx</title>
</head>
<body>
    <h1>我的第一个标题: Docker Nginx</h1>
    <p>我的第一个段落: Hello, Nginx.</p>
</body>
</html>

刷新页面,输出结果为:


相关命令

如果要重新载入 Nginx 可以使用以下命令发送 HUP 信号到容器

docker kill -s HUP container-name

停止 Nginx 容器命令:

docker stop container-name

启动 Nginx 容器命令:

docker start container-name

重启 Nginx 容器命令:

docker restart container-name


PS:

参考:https://www.runoob.com/docker/docker-install-nginx.html

原文地址:https://www.cnblogs.com/miracle-luna/p/11105382.html