项目背景

背景:要求把公司的静态网页部署在docker容器上,并且将容器打包交给运维人员

踩到的坑:没有弄明白export和save的区别

操作步骤

方法1,利用Dockerfile制作镜像[推荐直接看这里]

制作模板

下载基础模板

>* sudo docker pull nginx

准备html

>在index同层目录下建立Dockerfile
>* sudo gedit Dockerfile
>FROM nginx:latestCOPY . /usr/share/nginx/html

打包生成镜像

生成镜像

>* sudo docker build -t html:1.0 .  【html:1.0为指定的镜像名:tag】

运行docker容器

  • sudo docker run -p 8080:80 -d html:1.0

检查结果:

  • 浏览器:localhost:8080

导出镜像

  • sudo docker save html > html.tar

使用镜像

导入镜像

  • sudo docker load < html.tar

方法2:[累赘, 不要看]

制作镜像模板

下载nginx容器

  • sudo docker pull nginx

    可以看出镜像是一层一层下载的,这验证了镜像其实是个千层饼,是一层一层叠加的

开启容器

  • sudo docker run -p 8080:80 -d nginx //将80端口映射为8080,或者80:80还是原先的80端口,不可以不写。
  • netstat -anp | grep 8080 //端口已经开启了
  • sudo docker ps

将html导入/usr/share/nginx/html目录

  • sudo docker cp demo/ 264f32137ad0:/usr/share/nginx/html

    • 【备注:demo目录下保存的是html文件】
  • sudo docker exec -it 264f32137ad0 bash
    • 【另一种写法:sudo docker exec -it 264f32137ad0 /bin/bash】
  • 将原来html下面的所有文件删除,将demo下载的静态文件移动到html目录下载
  • 打开浏览器,输入localhost:8080就可以看到html静态网页了
  • exit

使用save制作镜像

提交修改的容器,并生成新的镜像

  • sudo docker commit 264f32137ad0 nginx
  • sudo docker images

导出镜像

  • sudo docker save nginx> newnginx.tar
    【另一种写法:sudo docker save -o newnginx.tar nginx】
    【备注:nginx是容器名字,可以用容器ID代替】

使用刚刚制作的镜像

导入镜像

环境:一台新的ubuntu上

  • sudo docker load < newnginx.tar
    【另一种写法:sudo docker load --input nginxv1.tar】

备注:导入容器时可能会有权限问题,这时候:sudo chmod 777 newnginx.tar
如果想重命名镜像:

docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

开启容器并且浏览器查看

  • sudo docker run -p 8080:80 -d nginx
  • 打开浏览器,输入localhost:8080就可以看到html静态网页了
  • sudo docker inspect nginx 【查看所制作的镜像的信息】

    发现修改的配置文件依然存在

出错的步骤
因为没有弄清楚save和export的区别,第一次我是使用export方法导入导出的,但是发现不能监听端口时会出错。

制作镜像

  • sudo docker container ls -a
  • sudo docker export bcad5b323e6c > niginxv2.tar
    【备注:导出镜像,bcad5b323e6c是镜像ID】

导入镜像

  • sudo cat niginxv2.tar | docker import - niginx:v2
    【将容器快照niginxv1.tar导入为镜像,并且指定镜像名字叫做niginx:v1 】

    解决:
  • sudo -i 【切换到root用户】
  • cat niginv2.tar | docker import - niginx:v2
  • su - ocean 【切换到普通用户】
  • sudo docker images

运行容器

  • sudo docker run -p 8080:80 -d niginx:v2
    docker: Error response from daemon: No command specified.
    See ‘docker run --help’.

错误原因:
1、没有cmd命令,即使加上了bash,但是在浏览器不能查看设置的静态网页


2、查看export设置的详细信息

  • sudo docker inspect niginx:v2

3、我进入import导出的镜像,发现我刚刚导入的html文件还在。
总结:采用export制作的镜像,它的配置信息什么的不见了。
推测:docker export的应用场景主要用来制作基础镜像

总结:save VS export

  • save是持久化镜像,export是持久化容器

    • sudo docker save 镜像ID或者镜像名字 > 保存名字.tar
    • sudo docker export 容器ID或者容器名字 > 保存名字.tar
  • docker load载入镜像存储文件,docker import导入容器快照,但是两者都会恢复为镜像
  • docker load不能对载入的镜像重命名,docker import容器快照文件导入时可以重新指定标签
    *容器快照文件将会丢弃所有的历史记录和元数据信息[仅保存容器当时的快照状态],而镜像存储文件将保存完整记录。

docker: 使用nginx容器运行html静态网页以及制作镜像相关推荐

  1. 食品商城网站设计—食品商城购物网站(8页) HTML+CSS+JavaScript 静态网页的制作

    HTML5期末大作业:食品商城网站设计--食品商城购物网站(8页) HTML+CSS+JavaScript 静态网页的制作 文章目录 HTML5期末大作业:食品商城网站设计--食品商城购物网站(8页) ...

  2. HTML5期末大作业:食品商城网站设计——食品商城购物网站(8页) HTML+CSS+JavaScript 静态网页的制作

    HTML5期末大作业:食品商城网站设计--食品商城购物网站(8页) HTML+CSS+JavaScript 静态网页的制作 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物 ...

  3. docker部署html页面,在Docker容器中部署静态网页的方法教程

    前言 一般我们在访问容器时需要通过容器的端口来访问,那如何设置容器的端口映射呢? 我们通过以下命令来设置: docker run -p ip:hostPort:containerPort [--nam ...

  4. docker创建nginx容器

    创建nginx容器 需要同时提供配置文件和网页文件 实例: [root@localhost ~]# docker run -it --name html -v /var/www/html/:/usr/ ...

  5. docker安装nginx容器小记

    前言: 使用docker安装了nginx容器,很久才成功跑起来,对安装过程做下记录 linux系统:centos7.4 docker安装不阐述,直接记录安装创建nginx容器的过程 1. 拉取ngin ...

  6. 拿Nginx 部署你的静态网页

    emmmm,作为一个前端开发时刻想着,怎么把自己写的东西,丢到自己的服务器上面,然后展示给别人看.下面我就简单直白的写下,如何用 Nginx 部署你的静态网站. 事前准备 云服务器,(我的是阿里云) ...

  7. Docker启动nginx容器--搭建网站

    1.下载nginx镜像 docker pull nginx 2.启动nginx镜像 docker run -d --name nginx01 -p 80:80 -v /data/nginx/www:/ ...

  8. Docker 安装 Nginx 容器 (完整详细版)

    下载Nginx的docker官方镜像: docker pull nginx:latest 配置docker-compose.yml: docker-compose.yml: version: &quo ...

  9. 静态网页的制作(美食美刻)

    以下所有内容均是通过所看教程记录的笔记. 静态网页制作步骤: 1. 创建一个完整网络目录结构 一个文件夹:管理当前网站中所有的文件 index.html/default.html(文件):当前网站的入 ...

  10. 山东菏泽家乡网页代码 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

    家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套.浮动.margin.border.background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大 ...

最新文章

  1. python代码命令行tab补齐_Python在命令行下Tab键自动补全脚本
  2. C#机房重构-datagridview控件的使用
  3. EasyUI的combobox用法
  4. Elasticsearch 的一些关键概念
  5. Linux awk编辑器及命令
  6. [转载]struts+hibernate遇到的错误总结
  7. OpecCV颜色分割
  8. 进程 线程 多进程 多线程 父进程 子进程
  9. 360技术嘉年华第七季——测试之美 报名啦
  10. 《计算机网络 自顶向下方法》(第7版)答案(第一章)(一)
  11. android蓝牙 助手源码,蓝牙串口助手(Android Studio源码)
  12. 问题 C: 所罗门王的宝藏
  13. sata port multiplier
  14. Spring Boot - Thymeleaf模板简介以及集成
  15. android 分享小程序到微信,Android 分享微信小程序之图片优化
  16. sparksql:dataframe数据写入到Hbase中
  17. 二十八条改善 ASP 性能和外观的技巧
  18. 北大AI公开课第五课--深度学习处理器by寒武纪陈云霁
  19. 巴西龟饲养日志----6月份记录
  20. 【Face Recognition人脸识别】3. 单张图片人脸识别

热门文章

  1. 啊哈C——学习2.5一起来找茬
  2. 分期手续费转换为年化利率
  3. 流媒体RTMP协议解析
  4. 计算机无法查看图片,Win7系统提示windows照片查看器无法打开此图片的解决方法...
  5. LC5软件破解用户口令
  6. 计算机应用基础第四版答案周南岳,计算机应用基础周南岳答案.docx
  7. ColorPix最好用的屏幕取色器
  8. vue项目加载OCX控件以及控件的主动事件和回调事件的处理
  9. SSM框架的基本原理及特点讲解---COOKIE
  10. H5页面调起手机打电话功能