当前位置: 首页 > wzjs >正文

安徽网站建设天锐科技桂林红豆网论坛

安徽网站建设天锐科技,桂林红豆网论坛,南京网站制作案例,开源免费cms可商业用Dockerfile 的作用 Dockerfile让docker命令变得更简单,是用于构建docker镜像,实现自动化部署 Dockerfile 构建自己的centos镜像 这里有一个应用场景,创建一个自己的centos镜像,这个镜像有我们所需的软件 可以将我们一系列的操作…

Dockerfile 的作用

  • Dockerfile让docker命令变得更简单,是用于构建docker镜像,实现自动化部署

Dockerfile 构建自己的centos镜像

  • 这里有一个应用场景,创建一个自己的centos镜像,这个镜像有我们所需的软件
    • 可以将我们一系列的操作,配置在dockerfile中
    • 通过 docker build 就可以生成我们自己的 centos镜像

1 ) 编写 Dockerfile

FROM centos
RUN yum install -y net-tools
WORKDIR /home/www
CMD /bin/bash

2 )构建centos镜像

  • $ docker build -f Dockerfile -t my_centos:v1.0.0 .
    • 这里 -f Dockerfile 指定Dockfile文件
    • 这里Dockerfile用的文件名就是Dockerfile可以不加,忽略
    • -t 是打镜像标签
    • 注意,最后面的 .

3 )运行新打包的镜像

  • 运行:$ docker run -it my_centos
    • 启动后,自动进入 /home/www目录中,可以使用 pwd 来测试
    • ifconfig 测试可以输出,说明 net-tools 已经正确被安装了
    • 这里 run 的时候,后面没有 /bin/bash 但是运行之后
    • 直接打开了bash环境了,是Dockerfile中的CMD执行了

Docker 打包 Nginx 镜像

  • Dockerfile 构建一个 nginx 镜像
  • 构建好的镜像内会有一个 /usr/share/nginx/html/index.html文件

1 )编写 Dockerfile

  • 新建 Dockerfile_nginx 文件
    FROM nginx
    RUN echo 'hello docker' > /usr/share/nginx/html/index.html
    WORKDIR /usr/share/nginx/html
    
  • 注意,上面没有 CMD, 如果添加命令,就会替换了 nginx 的默认启动命令
  • $ docker build -f Docker_nginx -t my_nginx:v1.0.0 . 这里是打包
  • $ docker run -itd -p 80:80 my_nginx:v1.0.0 运行新镜像
  • $ curl 127.0.0.1 可看到结果
  • $ docker exec -it 容器id /bin/bash
    • $ pwd 可看到 在 工作目录 /usr/share/nginx/html中

关于 Dockerfile中的一些配置信息

FROM           # 基础境像,一切从这里开始构建
MAINTAINER     # 镜像是谁写的,姓名+邮箱
LABEL          # LABEL 指令用来给镜像添加一些元数据
RUN            # 编译镜像时运行的脚本
COPY           # 编译镜像时复制文件到镜像中 不会解压
ADD            # 编译镜像时复制文件到镜像中 tar.gz 文件会自动解压
WORKDIR        # 镜像的工作目录 相当于 cd 的 命令
CMD            # 设置容器启动的命令,会被run时指定的命令替换掉, 比如 docker -it nginx /bin/bash 这里的 /bin/bash
ENTRYPOINT     # 设置容器启动的命令,不会被外部配置替换
EXPOSE         # 设置镜像暴露的端口,告诉外面容器暴露的端口 和 -p 不一样
VOLUME         # 设置容器挂载的卷,告诉外面容器暴露的数据卷 和 -v 不一样,在容器内使用 df 命令可以看到挂载的卷
ENV            # 设置容器的环境变量 和 -e 一样

构建一个复杂版的 centos 镜像

1 )编写 Dockerfile_centos 文件

FROM  centos
MAINTAINER  Wang
ENV MyLocal /home
WORKDIR $MyLocal
EXPOSE 80
VOLUME ["volume1", "volume2"] # 这样写在根目录下会产生这两个目录
RUN yum install -y net-tools
RUN yum install -y vim
ADD test.tar.gz /root
COPY test.tar.gz /home
CMD /bin/bash

2 ) 构建新镜像

  • $ docker build -f Dockerfile_centos -t my_centos:v2.0.0 .

3 )运行镜像

  • $ docker images 找到刚才打包的新镜像
  • $ docker run -it --name my_centos2 my_centos:v2.0.0的镜像id

4 )验证

  • $ pwd 验证了 workdir 是 /home
  • 再验证打包与解压的结果,验证通过
  • /volume1, /volume2 都存在
  • $ printenv 验证环境变量,验证通过
  • 其他验证,通过
  • $ docker inspect 镜像id | grep xxx 这里的 xxx 是你想看的任何相关信息
  • 这样可以看很多细节
  • 可查看 容器中的 /volume1 在物理机上的位置
  • 拿到位置后可验证内外数据同步

Dockerfile 中CMD与ENTRYPOINT

  • CMD 可被追加的命令替换
  • ENTRYPOINT 不可被替换,如果有命令,会被追加
    • 如果 ENTRYPOINT 配置的是 [“ls”, “-a”]
    • $ docker run -it 镜像id -l
      • 后面的 -l会追加,类似 ls -a -l
http://www.dtcms.com/wzjs/536140.html

相关文章:

  • c 网站开发网易云课堂百度云下载一个域名可以做多少个二级网站
  • 建设电影网站难吗优化大师安卓版
  • 外贸网站建设和网站推广要怎么做长沙大型网站设计公司
  • 做植物网站提高网站速度
  • 咸阳做网站托管义乌网
  • 做网站需要写代码吗百度竞价规则
  • 汕头站扩建后比哪个站大龙岩网站设计较好的公司
  • 东莞网站建设套餐上海注册公司一网通办
  • 邮箱网站怎么做网站如何换服务器
  • 没有域名 有公网ip 建网站可以wordpress菜单和页面的关系
  • 建设网站公司那里好网站管理员中心
  • 金融网站开发文档下载关于合肥的网站好
  • 合肥哪家公司做网站黄冈贴吧黄冈论坛吧
  • 上海企业网站制作公司把网站做二维码
  • 郑州企业网站优化服务哪家好赛多利斯科学仪器北京有限公司
  • 最牛网站建设域名一定要备案吗
  • 怎样做网站后台运营深圳北斗部标平台网站建设
  • 网站模板安装出现预先建设数据库网站一定要备案才能设计
  • 建网站程序怎么办电子商务网站设计与...
  • 百度网站源码优化检测沈阳网站优化公司
  • 做网站然后卖北京环球影城可以带水果吗
  • 网站运营网站建设建立门户公司网站
  • 多语言外贸网站设计网站分为四个步骤开发建设
  • 各种网站都能打开的浏览器哪个网站是做安全教育
  • 网站建设督查报告昆山做网站好的
  • 大连市开发区网站建设公司html5网页设计论文
  • 厦门跨境电商前十济南网站优化小黑
  • 西安网站优化排名公司网站可以不备案吗
  • 网站图片有什么要求所以免费爱做网站
  • 大连网站建设吗虚拟币网站开发