Docker创建一个Nginx服务器的方法步骤

2020-06-17 06:26:02易采站长站整理


docker start nginx_web

进入到我们的容器内部


docker attach nginx_web

echo "<h1>Hello Docker</h1>" > /usr/share/nginx/html/index.html

nginx &

然后 使用快捷键 control + Q 退出当前的容器

之后我们在浏览器再次访问:http://localhost:8080/

折腾了这么久,终于看到我们期望的的内容了。

Hello Docker

四、将前面Nginx Demo 变成一个可以玩的 Demo

先创建我们本机需要映射的文件夹


mkdir -p docker_study/log docker_study/etc docker_study/html

注意: 在自己的家目录创建

复制我们docker中nginx 的配置文件


docker cp 65bc23f952db:/etc/nginx/ /Users/roverliang/docker_study/etc/

关闭掉我们的容器


docker stop nginx_web

删除掉我们的练习的demo,我们重新来构建一个可以用的。


docker rm nginx_web

将Nginx 镜像和我们本机的目录进行映射,方便我们修改文件


docker run
-p 8080:80
--name nginx_web
-v /Users/roverliang/docker_study/log/:/var/log/nginx
-v /Users/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf
-v /Users/roverliang/docker_study/html/:/usr/share/nginx/html
-it
-d
nginx
/bin/bash

运行到这里,我们可能还是会发现访问http://localhost:8080/ 没有内容。但是不要急,解决问题的过程,就是学习新东西的过程,继续网上查资料,参考如下:

Docker运行nginx

摘抄文中让我豁然开朗的一段:

我之前运行的时候,一般都采用交互式:-i 保证容器的stdin开启-t 为容器生成一个tty终端,在命令的最后加一个/bin/bash来保证可以交互。但是实际上,nginx并没有运行,导致我以为容器的端口绑定不是持久化的。

接下来我们需要关掉,并删除我们的容器,再按照如下的命令重启一个:


docker run
-p 8080:80
--name nginx_web
-v /Users/roverliang/docker_study/log/:/var/log/nginx
-v /Users/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf
-v /Users/roverliang/docker_study/html/:/usr/share/nginx/html
-d
nginx

五、修改Nginx 配置,解析一个网站

修改我们刚刚复制过来的nginx 配置


cd /Users/roverliang/docker_study/etc
vim nginx.conf

在Http 模块中添加如下配置: