怎么使用docker安装nginx提供的web服务
怎么使用docker安装nginx提供的web服务
这篇文章主要介绍了怎么使用docker安装nginx提供的web服务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用docker安装nginx提供的web服务文章都会有所收获,下面我们一起来看看吧。
一、拉取镜像
docker pull命令用于拉取应用镜像,docker pull nginx
命令用于拉取最新版本的nginx镜像。下文为拉取镜像过程的响应结果:
#dockerpullnginxUsingdefaulttag:latestlatest:Pullingfromlibrary/nginxc229119241af:Pullcomplete2215908dc0a2:Pullcomplete08c3cb2073f1:Pullcomplete18f38162c0ce:Pullcomplete10e2168f148a:Pullcompletec4ffe9532b5f:PullcompleteDigest:sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1Status:Downloadednewerimagefornginx:latestdocker.io/library/nginx:latest
从上文我们可以看出nginx镜像是从docker.io
这个网址拉取下来的。
使用docker images
命令可以查看当前操作系统中下载了哪些镜像文件。
#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEnginxlatest12766a6745ee33hoursago142MBhello-worldlatestfeb5d9fea6a56monthsago13.3kB
REPOSITORY镜像仓库及镜像名称,如果不显示镜像仓库,默认就是
docker.io
TAG镜像的版本或者是里程碑标签,latest表示最新版本
IMAGE ID 镜像的唯一标识
CREATED 这个镜像被创建的时间
SIZE表示镜像文件的大小
二、运行镜像启动容器
通过docker run
命令启动一个容器,容器名称为nginx-zimug。
#dockerrun-d--namenginx-zimug-p80:80nginx81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
-d
表示容器在后台运行--name
为容器起一个名字-p
端口映射,格式为宿主机端口:容器端口
,上文中含义是将容器中的端口80映射到宿主机的端口80,对外提供访问服务。最后一个字段为镜像名称
浏览器HTTP协议访问宿主机的80端口,如果是80端口可以省略。得到的访问结果如下,说明我们的nginx服务已经启动成功了。
通过docker ps
可以查看正在运行中的容器,如下所示:
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES81bb1211144bnginx"/docker-entrypoint.…"11minutesagoUp11minutes0.0.0.0:80->80/tcp,:::80->80/tcpnginx-zimug
三、文件映射
首先明确的是容器中的文件内容是可以被修改的,但是一旦容器重启,所有写入到容器中的,针对数据文件、配置文件的修改都将丢失。所以为了保存容器的运行状态,执行结果,我们需要将容器内的一些重要的数据文件、日志文件、配置文件映射到宿主机上。
以nginx为例,nginx有三个重要的文件目录:
容器中路径 | 宿主机中自定义映射路径 | |
---|---|---|
存储网站网页的目录 | /usr/share/nginx/html | /root/nginx/html |
nginx配置文件目录 | /etc/nginx/nginx.conf | /root/nginx/conf/nginx.conf |
日志目录 | /var/log/nginx | /root/nginx/logs |
在宿主机中新建文件目录
mkdir-p/root/nginx/logs/root/nginx/html/root/nginx/conf;
将容器中的文件copy到宿主机中
将nginx配置文件copy到宿主机中
dockercpnginx-zimug:/etc/nginx/nginx.conf/root/nginx/conf;
将一个模拟的html文件放入html目录
将下面的文件保存为index.html放入宿主机的/root/nginx/html
目录,因为存在映射关系,实际上也是放入了容器的/usr/share/nginx/html
目录。
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>使用docker搭建nginxweb服务</title></head><body><h2>访问成功</h2><p>厉害了!</p></body></html>
四、再次启动容器服务
-v
参数表达了宿主机文件与容器中文件的映射关系,格式为-v 宿主机目录:容器文件系统目录
。启动一个新的容器,容器的名字叫做nginx-prod
dockerrun-d-p80:80\--namenginx-prod\-v/root/nginx/html:/usr/share/nginx/html\-v/root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf\-v/root/nginx/logs:/var/log/nginxnginx
在启动新容器之前,将nginx-zimug旧的容器删掉。如果不删除旧的容器,新容器的端口与旧容器端口会发生冲突。使用如下命令删除容器:
dockerstopnginx-zimug;dockerrmnginx-zimug;
执行上面的docker run
命令,启动新的容器。启动后通过浏览器访问宿主机80端口,响应结果如下证明nginx正常提供web服务了。
同时可以在宿主机上修改nginx配置,也可以查看运行时日志文件。修改结果会影响容器nginx服务的运行,因为宿主机的配置文件与容器内的配置文件存在映射关系。
关于“怎么使用docker安装nginx提供的web服务”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用docker安装nginx提供的web服务”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
Zend Studio使用教程:在Docker容器中调试PHP Web应用(三)
-
「docker+gdb」调试 PHP 源码,看 strva
-
XSS注入我也不怕不怕啦–PHP从框架层面屏蔽XSS的思考和实践
本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:微信号:TencentWeTest对于新接触web开发的同学来说...
-
使用laradock创建laravel本地开发环境
-
让你的nginx支持php
-
如何自学PHP,怎样才能不走弯路?
-
使用 curl 从命令行访问互联网
-
简单粗暴,SQL漏洞自动注入
-
PHP是世界上最好的编程语言
-
白帽黑客教你SQL注入攻击方式及如何防御SQL注入攻击