本文适用人群

  1. window环境
  2. 对docker,nginx有基本了解

docker安装:官网直接下载安装即可


拉取镜像,安装nginx

方式一:命令查找
docker search name

方式二:网站搜索查找
http://hub.daocloud.io/

这里使用第一种方式:先查找镜像,再选择适合的版本拉取,一般拉取第一个即可

步骤一:查找

docker search nginx
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                        14535     [OK]
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1980                 [OK]
richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   809                  [OK]
jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ho…   158
linuxserver/nginx                  An Nginx container, brought to you by LinuxS…   141

步骤二:拉取

docker pull nginx

步骤三:验证是否拉取成功,使用docker images查看已经安装的镜像

docker images
$ docker images
REPOSITORY                  TAG           IMAGE ID       CREATED         SIZE
nginx                       latest        35c43ace9216   2 weeks ago     133MB
daocloud.io/library/nginx   1.19.2-perl   9bbf3cf08562   5 months ago    178MB
docker/getting-started      latest        3c156928aeec   10 months ago   24.8MB

运行镜像,启动nginx服务

步骤一:运行命令

docker run -d -p 8088:80 --name nginx-server nginx

命令解释
docker run:运行镜像
-d:设置容器在后台一直运行
-p:端口进行映射,将本地 8088 端口映射到容器内部的 80 端口
–name nginx-server:设置一个名字
nginx:就是docker images中的REPOSITORY,也可以设置为docker images中的IMAGE ID

执行成功后会生成一串字符串,如 0be2187033deb4295653220ff26c847ece269fb5f9efbef07019b7b06d131cb9

步骤二:运行命令验证是否运行成功,使用docker ps查看正在运行的镜像

docker ps
docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED             STATUS             PORTS                  NAMES
2187d5f1f00a   nginx     "/docker-entrypoint.…"   About an hour ago   Up About an hour   0.0.0.0:8088->80/tcp   nginx-server

步骤三:打开浏览器,输入localhost:8088,或者127.0.0.1:8088,会显示默认的nginx页面

docker 添加文件夹映射 docker本地文件夹映射_docker


将本地文件映射到nginx,也就是修改这个页面,放自己写好的页面,并且修改nginx配置

步骤一:先在本地生成目录,并且创建好文件

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

注意:~代表的是当前路径,如果不知道当前路径,可以使用命令 pwd 查看当前所在路径
可以改成 你的所在路径 + /nginx/www,如我的:/c/Users/PC/nginx/www

pwd
/c/Users/PC

步骤二:在nginx/www里放你的页面文件,这里使用测试index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>hello docker nginx!!!</h1>
</body>
</html>

步骤三:将运行中容器的配置拷贝下来,这样就不用从0写了,再根据自己的需要修改配置,新手可以忽略拷贝配置,直接跳到第四步。

docker cp 2187d5f1f00a:/etc/nginx/nginx.conf ~/nginx/conf

docker 添加文件夹映射 docker本地文件夹映射_nginx_02


此时就有一个nignx.conf文件了

步骤四:停掉已经运行的nginx服务

docker stop nginx

步骤五:重新运行nginx服务,将本地文件映射到nginx容器中

注意大坑
windows下的路径需要:写成这样的格式:c:/xxx/xxx/nginx/www
macbook 和 linux 好像写成:/xxx/xxx/nginx/www(不太确定,请自行尝试,这里主要测试了windows环境)
如果不行,就两种都试一试

只映射页面的写法,不映射配置

docker run -d -p 8088:80 --name nginx-server -v c:/Users/PC/nginx/www:/usr/share/nginx/html

映射页面和配置的写法,想要了解更多的,需要去学习nginx的相关配置

docker run -d -p 8088:80 --name nginx-server -v c:/Users/PC/nginx/www:/usr/share/nginx/html -v c:/Users/PC/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v c:/Users/PC/nginx/logs:/var/log/nginx nginx

步骤六:打开浏览器,测试效果

docker 添加文件夹映射 docker本地文件夹映射_html_03


设置成功,修改index.html文件的内容,刷新即可更改


设置代理转发

(先略,待更新)