4.4docker基础详细版--在容器中部署静态网站

news/2024/5/9 19:56:37/文章来源:https://blog.csdn.net/wangguohe/article/details/81508323

利用docker技术在容器中使用nginx部署一个静态网站。


容器的端口映射


在使用run的时候指定-p或-P来进行端口映射:

-P:将为容器暴露的所有端口进行映射eg:docker run -P -it centos /bin/bash-p:指定映射哪些容器的端口eg:1、只指定容器端口(宿主机端口随机映射)docker run -p 80 -it centos /bin/bash2、同时指定宿主机端口和容器端口docker run -p 8080:80 -it centos /bin/bash3、指定ip和容器的端口docker run -p 0.0.0.0:80 -it centos /bin/bash4、指定ip:宿主机端口:容器端口docker run -p 0.0.0.0:8080:80 -it centos /bin/bash

部署服务


步骤

  1. 创建映射80端口的交互式容器
  2. 安装nginx
  3. 安装vim
  4. 创建静态页面
  5. 修改配置文件
  6. 运行nginx
  7. 验证访问

搭建

创建一个映射80端口的交互式容器:

docker run -p 80 --name web -it centos /bin/bash

配置epel源:

[root@4168ac0dfa0f /]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -P /etc/yum.repos.d[root@4168ac0dfa0f /]# rpm -ivh /etc/yum.repos.d/epel-release-latest-7.noarch.rpm[root@4168ac0dfa0f /]# yum clean all

安装nginx,vim

[root@4168ac0dfa0f /]# yum install -y nginx vim

建立存放页面的目录和页面:

[root@4168ac0dfa0f /]# mkdir -p /var/www/html[root@4168ac0dfa0f /]# cd /var/www/html/[root@4168ac0dfa0f /]# vim index.html<html><head><title>Test docker-ng</title></head><body><h1>IF you see this, you success run a nginx in docker!</h1></body></html>

编辑nginx配置文件:

[root@4168ac0dfa0f html]# vim /etc/nginx/nginx.conf修改root  /var/www/html;

运行nginx:

[root@4168ac0dfa0f html]# nginx[root@4168ac0dfa0f html]# ps -ef | grep nginx使用CTRL+P CTRL+Q让容器运行在后台

在物理机中查看容器:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                   NAMES
4168ac0dfa0f        centos              "/bin/bash"         12 minutes ago      Up 12 minutes       0.0.0.0:32768->80/tcp   web[root@docker ~]# docker port web
80/tcp -> 0.0.0.0:32768

可以看到,容器的80端口映射到主机的32768端口上

验证网站是否可访问:

命令行中访问:
[root@docker ~]# curl 127.0.0.1:32768

这里写图片描述

也可以在浏览器中访问:
这里写图片描述

使用容器的IP地址访问

使用inspect参数查看docker容器的ip:

[root@docker ~]# docker inspect 4168ac0dfa0f

这里写图片描述

用curl访问:

[root@docker ~]# curl 172.17.0.2

这里写图片描述

关闭、重启服务

现在web容器一直后台运行:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                   NAMES
4168ac0dfa0f        centos              "/bin/bash"         35 minutes ago      Up 35 minutes       0.0.0.0:32768->80/tcp   web

然后关闭容器后重新运行容器:

[root@docker ~]# docker stop web
web[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES[root@docker ~]# docker start -i web[root@4168ac0dfa0f /]# ps -ef 
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 12:29 ?        00:00:00 /bin/bash
root         15      1  0 12:29 ?        00:00:00 ps -ef

发现nginx并没有在重启容器后自动运行

用docker的exec参数在容器外启动nginx:

[root@docker ~]# docker exec web nginx[root@docker ~]# docker top web
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4986                4973                0                   20:29               pts/1               00:00:00            /bin/bash
root                5044                1                   0                   20:31               ?                   00:00:00            nginx: master process nginx
polkitd             5045                5044                0                   20:31               ?                   00:00:00            nginx: worker process

可以看到nginx已经启动了

现在重新访问,又正常了:

[root@docker ~]# curl 127.0.0.1:32769
<html>
<head><title>Test docker-ng</title>
</head>
<body><h1>IF you see this, you success run a nginx in docker!</h1>
</body>
</html>

注意,容器停止后重新运行,映射的端口和IP地址可能会发生变化!

 本文转自这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_901429.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9.docker常用命令学习网站常用软件的安装

以下是此页面上的基本 Docker 命令列表&#xff0c;以及一些相关命令&#xff08;如果您要在继续之前进行进一步探索&#xff09;。 docker build -t friendlyname .# 使用此目录的 Dockerfile 创建镜像 docker run -p 4000:80 friendlyname # 运行端口 4000 到 90 的“友好名…

SSM众筹网站

注&#xff1a;本文为伪原创&#xff0c;代码主要参考尚硅谷教程。感谢巨人的肩膀&#xff0c;让我可以看得更远。 本文全部代码见https://github.com/BnKes/crowdfunding 详细目录见文章尾巴 1.系统架构 Atcrowdfunding-parent 父工程,聚合其他工程(pom)Atcrowdfunding-mai…

29个非常优秀的纹理背景网站设计

纹理设计一直是不少同学追求的&#xff0c;今天就推荐30个纹理设计出众的网站&#xff0c;希望对你的设计有所帮助。个人比较喜欢第14个&#xff0c;有家的轻松的感觉&#xff0c;更有三维效果&#xff0c;大爱啊&#xff01; 1. Banger’s分享一个最好用的UI前端框架&#xff…

[转载]搭建个人网站 |博客

一个完全的新人如何搭建自己的个人网站 首先&#xff0c;申明下本文所指的新人是指会上网站看网页&#xff0c;会自己聊QQ&#xff0c;会在新浪、网易等平台上写博客的人。当然你要说这个只要会上网的人都会了&#xff0c;是的&#xff0c;我所指的新人就是会上网的人。所以本文…

推荐一个oracle管理和学习资料网站

http://ajava.org/book/oracle/index.html 很多的oracle管理和学习方面的电子书&#xff0c;值得一看

将网站打包成桌面程序并生成安装包(跨平台)

一、Nativefier将网站打包成桌面程序 介绍 Nativefier 是一个命令行工具&#xff0c;仅仅通过一行代码就可以轻松地为任何的网站创建桌面应用程序&#xff0c;应用程序通过 Electron打包成系统可执行文件&#xff08;.app .exe等), 对应的可执行文件分别可在 Windows、macOS …

WSTMall网站系统最新官方版

WSTMall V1.0是在thinkphp 的经典版本3.2.2基础上进行优化开发的&#xff0c; TP 3.2.2不是thinkphp的一个最新的版本&#xff0c;却是thinkphp最金典的一个版本&#xff0c;正所谓站在巨人的肩膀上&#xff0c;WSTMall V1.0继承了thinkphp大道致简的理念&#xff0c;继承了thi…

天涯孤岸软件商城-.net电子商务网站系统案例

Asp.net 电子商务商城 开发技术项目案例 ASP.NET是作为.NET框架体系结构的一部分推出的。2000年ASP.NET 1.0正式发布&#xff0c;2003年ASP.NET升级为1.1版本。ASP.NET 1.1发布之后更加激发了Web应用程序开发人员对ASP.NET的兴趣。于是在2005年11月微软公司又发布了ASP.NET 2.…

使用Java开发高性能网站(二)

数据存取 数据库服务器的优化和数据的存取&#xff0c;什么类型的数据放在什么地方更好是值得去思考的问题&#xff0c;将来的存储很可能是混用的&#xff0c;Cache&#xff0c;NOSQL&#xff0c;DFS&#xff0c;DataBase在一个系统上都会有&#xff0c;生活的餐具和平日里穿的…

html/css 个人网站实例(一)

显示效果 HTML代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>alalasheep的个人网站</titl…

兼容性网站导航主菜单--Head

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"en"> <head> <title>兼容性超强的…

18 个锻炼编程技能的网站

编程几乎已经成为了人类所知每个行业的必要组成部分&#xff0c;它帮助组织和维护大型系统的方式是无可比拟的&#xff0c;所以越来越多的人开始了他们的编程之旅。 要学习编程&#xff0c;你可以通过交互式平台或者书本&#xff0c;随便一种你觉得最适合和容易的学习方式。但是…

Chrome“无法添加来自此网站的应用”的解决办法

晚上在Win8系统下在给Chrome添加插件时突然提示“无法添加来自此网站的应用、扩展程序和应用脚本”&#xff0c;这果断让我很诧异~之前用的都是Win7系统的Chrome 24.0&#xff0c;添加插件的方法也很简单&#xff0c;就是直接将下载好的Chrome应用*.crx文件拖到扩展程序界面&am…

监控网站与接口宕机,并推送 App 消息提醒的程序

监控网站与接口宕机&#xff0c;并推送 App 消息提醒的程序 咕咕监控&#xff0c;专注于网站、数据接口与设备在线状态监控&#xff0c;统一管理您所有的网站、API 与设备&#xff0c;10ms 级别的监控频率&#xff0c;宕机时第一时间推送 App 消息、微信消息、短信、电话语音进…

我的SEO之路2013年3月5日最早的一个站突破

只看图不说话。 送大家一句话 坚持才是SEO的神

我的SEO之路2013年3月18日关于个人博客关键字排名30

这两天更新博客有点频繁哈。 今天又来记录一下自己15号提到的博客。 说之前先给大家看个图 这是今天刚刚查询的。 做百度SEO注重的是规律&#xff0c;更新频率&#xff0c;现在我在做个测试等测试结果出来后 会和大家一起分享一下的。 我的站是2月26日建立的&#xff0c;今…

手把手教你如何创建 ASP.NET Dynamic Data 实体网站

从四月份开始接触web开发&#xff0c;至今已经有一段时间了。之前一直忙于在做项目&#xff0c;每天加班加点&#xff0c;包括周末。现在项目总算上线了&#xff0c;有了点喘息的机会&#xff0c;回过头看&#xff0c;其实我对后端的东西懂得其实还很少&#xff0c;于是决定自己…

浏览器访问网站的流程

浏览器访问网站的过程 浏览器访问百度的过程是怎样的 &#xff1f;自我理解如下图 访问流程 A电脑首先发送DNS数据&#xff0c;进行解析www.baidu.com对应的IP地址B收到了来自A电脑的DNS请求&#xff0c;解析出www.baidu.com对应的IP地址返回给A电脑A电脑就会向这个地址进行TC…

KNN实战——约会网站配对效果判定

一 约会网站配对效果判定 上一小结学习了简单的k-近邻算法的实现方法&#xff0c;但是这并不是完整的k-近邻算法流程&#xff0c;k-近邻算法的一般流程&#xff1a; 收集数据&#xff1a;可以使用爬虫进行数据的收集&#xff0c;也可以使用第三方提供的免费或收费的数据。一般…