day06-20200720
p24.dockerfile案例编写-1
 
1.创建好容器时,进去容器的时候,修改所在的当前目录。
2.新添加命令。支持vim、ifconfig
备注:原来的镜像容器默认是不满足上面的条件的。
第一步:DockerFile编写
 
DockerFile_20200720_1
FROM centos
 
MAINTAINER fengyarong
 
ENV mypath /tmp
 
WORKDIR $mypath
 
RUN yum -y install vim
RUN yum -y install net-tools
 
EXPOSE 80
 
CMD echo $mypath
CMD echo "success -----ok"
CMD /bin/bash
 
第二步:构建镜像
【docker build -f /tmp/mydockerfile/DockerFile_20200720_1 -t fyr/centos:20200720.1 .】
【.】表示当前目录
 
第三步:运行容器
【docker run -it fyr/centos:20200720.1】
 
附加:【docker history 镜像id】可以查看本次镜像的构建过程。
 
p25.dockerfile案例编写-2
 
【CMD】和【ENTRYPOINT】如何区别?
 
通过镜像部署tomcat之所以运行就启动是因为,文件dockerfile里面最后有一句【CMD ["catalina.sh","run"]】
 
假设我们现在【docker run -it -p 8888:8080 tomcat ls -l】tomcat还会自动运行吗?
不会,容器启动后运行了ls -l就停止了。tomcat的目录。
 
第一步:编写dockerfile
DockerFile_20200720_2
FROM centos
RUN yum -y install curl
CMD [ "curl","-s","http://ip.cn" ]
 
第二步:构建镜像
【docker build -f DockerFile_20200720_2 -t fyr/centos:20200720.2 .】
 
第三步:运行容器
【docker run -it fyr/centos:20200720.2】
显示ip
【docker run -it fyr/centos:20200720.2 -i】
会报错,找不到-i这个命令
所以是不可以直接运行的,而是覆盖CMD [ "curl","-s","http://ip.cn" ]命令。
 
第四步:重新编写dockersfile
DockerFile_20200720_3
FROM centos
RUN yum -y install curl
ENTRYPOINT [ "curl","-s","http://ip.cn" ]
 
第五步:构建镜像
【docker build -f DockerFile_20200720_3 -t fyr/centos:20200720.3 .】
 
第六步:运行容器
【docker run -it fyr/centos:20200720.3】
显示ip
【docker run -it fyr/centos:20200720.3 -i】
成功解析,并显示ip
证明命令都执行,而不是覆盖。
 
 
 
 
 
 
 

跟着尚硅谷系统学习Docker-【day06】的更多相关文章

  1. 跟着尚硅谷系统学习Docker-【day01】

    day01-20200710   p1.基础知识   鲸鱼背上有一些集装箱   学习docker得基础知识   1.强制:熟悉Linux命令和相关背景知识 2.建议有maven和git的相关知识   ...

  2. 跟着尚硅谷系统学习Docker-【day08】

    day08-20200723   p32.docker 安装redis   [ docker pull redis] [docker run -p 6397:6397 -v /tmp/mydocker ...

  3. 跟着尚硅谷系统学习Docker-【day03】

    day03-20200715   p15.docker容器命令(下)   以守护进程的形式启动 [docker run -d 容器名]后台运行 启动了后又关闭了,与前台没有交互,立刻就kill了.前台 ...

  4. 跟着尚硅谷系统学习Docker-【day02】

    day02-20200714   p9.docker阿里云配置   helloword   拉取镜像-运行-   拉取镜像如果从国外网站拉取辉比较慢,所以需要配置阿里云或者网易云得镜像仓库.   首先 ...

  5. 跟着尚硅谷系统学习Docker-【day07】

    day07-20200722   p27.dockerfile案例编写-3   第一步:编写父dockerfile DockerFile_20200722_2 FROM centos RUN yum ...

  6. 跟着尚硅谷系统学习Docker-【day05】

    day05-20200717   p21.docker容器数据卷容器   就是活动硬盘上面挂载硬盘进行数据的传递.     [docker run -it --name dc01 fyr/centos ...

  7. 跟着尚硅谷系统学习Docker-【day04】

    day04-20200716   p18.docker容器数据卷   docker容器中的数据,做持久化. 容器关闭以后容器内的数据就没有了. 保存到数据库或者服务器宿主机里面.   作用:容器间可以 ...

  8. 尚硅谷Docker---1、docker杂记

    尚硅谷Docker---1.docker杂记 一.总结 一句话总结: ~ php用的homestead就相当于docker,javaee一般都是用docker,php也可以用docker ~ dock ...

  9. 尚硅谷Docker---1-5、docker简介

    尚硅谷Docker---1-5.docker简介 一.总结 一句话总结: docker是环境打包:有点像windows镜像 docker的实质:缩小版.精细版.高度浓缩版的一个小型的linux系统 1 ...

随机推荐

  1. Springboot常用的注解

    1.@Controller主要用来修饰类,用来处理http请求 2.@ResponseBody主要用来修饰类和方法.返回字符串和json数据,不用来返回模板. 3.@RestController主要用 ...

  2. RabbitMQ 基础概念进阶

    上一篇 RabbitMQ 入门之基础概念 介绍了 RabbitMQ 的一些基础概念,本文再来介绍其中的一些细节和其它的进阶的概念. 一.消息生产者发送的消息不可达时如何处理 RabbitMQ 提供了消 ...

  3. python_appium使用原理

    一. appium介绍 Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试. 它使用WebDriver协议驱动iOS,Android和Windows应用程序. 多平台支持: ...

  4. Linux学习日志——基本指令②

    文章目录 Linux学习日志--基本指令② 前言 touch cp (copy) mv (move) rm vim 输出重定向(> 或 >>) cat df(disk free) f ...

  5. Ubuntu 18.04 安装、配置和美化

    本文章修改自inkss的博文 为什么要修改原文? 本来我是想自己写这么一篇的,但是没想到在百度一搜,居然一篇好文.我之前没看到,真是可惜. 这篇文章主要是帮助我记录一些东西,如题. 原文虽然不错,但是 ...

  6. 《MySQL必知必会》检索数据,排序检索数据(select ,* ,distinct ,limit , . , order by ,desc)

    <MySQL必知必会>检索数据,排序检索数据 1.检索数据 1.1 select 语句 为了使用SELECT检索表数据,必须至少给出两条信息一想选择什 么,以及从什么地方选择. 1.2 检 ...

  7. JavaScript设计模式之单例模式【惰性单例】

    在提高开发水平,往中高级前端工程师中,利用设计模式是必不可少的一条道路.掌握设计模式的思想远远比硬套重要,因为设计模式是一种思想,不局限于开发语言.但实际上由于语言的特性不同,往往在实现的时候会有不少 ...

  8. python 10 else EasyGui(转载)

    else语句 if else 要么怎么样,要么不怎么样 while else 干完了能怎样,干不完就不怎样 (异常处理) else 没有问题,就干吧 try: int('a') except Valu ...

  9. DML语言(数据操纵语言)

    #DML语言/*数据操作语言:插入:insert修改:update删除:delete */ #一.插入语句#方式一:经典的插入/*语法:insert into 表名(列名,...) values(值1 ...

  10. golang interface 多态

    原文链接:http://www.52bd.net/code/210.html demo: package main import ( "fmt" ) //通知行为的接口 type ...