docker安装nginx

主要参考Docker 安装 Nginx完成nginx的安装和配置

镜像下载

Docker提供了官方nginx

$ docker pull nginx

启动

使用如下命令:

$ docker run --name nginx-test -p 7700:80 -d nginx
  • --name:容器名
  • -p:映射主机7700端口到容器80端口
  • -d:后台运行

打开浏览器,登录localhost:7700查看是否成功

配置

在主机创建文件夹

$ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf.d
  • www:保存html文件
  • logs:保存nginx运行日志
  • conf.d:保存配置文件

将容器内Nginx配置文件拷贝到主机

$ docker cp CONTAINER_ID:/etc/nginx/nginx.conf ~/nginx
$ docker cp COMTAINER_ID:/etc/nginx/conf.d/default.conf ~/nginx/conf.d

:~/nginx$ tree
.
├── conf.d
│   └── default.conf
├── logs
│   ├── access.log
│   └── error.log
├── nginx.conf
└── www
    └── index.html

修改配置文件~/nginx/conf.d/default.conf,修改Location

...
...
    location / {
        #root   /usr/share/nginx/html;
        root   /opt/www;
        index  index.html index.htm;
    }
...
...

~/nginx/www目录下创建文件index.html

<!DOCTYPE html>
<html>
<head>
<title>Docker Nginx</title>
</head>

<body>
Hello Nginx
</body>

</html>

重新启动nginx注意端口冲突,可以调整主机端口或停止之前的容器),命令如下:

$ docker run -d -p 7700:80 \
    --name nginx-test-web \
    -v ~/nginx/www:/opt/www \
    -v ~/nginx/logs:/var/log/nginx \
    -v ~/nginx/conf.d:/etc/nginx/conf.d \
    -v ~/nginx/nginx.conf:/etc/nginx/nginx.conf \
    nginx
  • -d:后台运行
  • -p:映射主机7700端口到容器80端口
  • --name:设置容器名
  • -v:挂载本地目录到容器中

上述操作后nginx将使用主机保存的配置文件,可以修改~/nginx/conf.d/default.conf,重新启动正在运行的容器即可更新配置

$ docker restart COMTAINER_ID