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

广东省住房城乡建设厅门户网站免费下载手机app

广东省住房城乡建设厅门户网站,免费下载手机app,画江湖网站开发文档,如何制作h5动态画面1.是什么? dockerfile是用来构建镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 构建三步骤 编写dockerfile文件docker build命令构建镜像docker run依镜像运行的容器实列 2.dockerfile构建过程解析 1)dockerfile内容的基础知识 …

1.是什么?

dockerfile是用来构建镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

构建三步骤

  1. 编写dockerfile文件
  2. docker build命令构建镜像
  3. docker run依镜像运行的容器实列

2.dockerfile构建过程解析

1)dockerfile内容的基础知识

  1. 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
  2. 指令按照从上到下,顺序执行
  3. #表示注释
  4. 每条指令都会创建一个新的镜像层并对镜像进行提交

2)Docker执行dockerfile的大致流程

docker从基础镜像运行一个容器

执行一条指令并对容器做出修改

执行类似docker commit的操作提交一个镜像

docker在基于刚提交的镜像运行一个新的容器

执行dockerfile中的一条指令直到所有指令都执行成功

3)总结

  1. Dockerfile,需要定义一个Dockerile,Dockerle定义了进程需要的一切东西。Dockerile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等:
  2. Docker镜像,在用Dockerfile定义-个文件之后,docker build时会产生个Docker镜像,当运行 Docker镜像时会真正开始提供服务
  3. Docker容器,容器是直接提供服务的。

3.dockerfile常用的保留字指令

参考tomcat8的dockerfile入门:GitHub - docker-library/tomcat: Docker Official Image packaging for Apache Tomcat

  1. 1)FROM——基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from。
  2. 2)MAINTAINER——镜像维护者的名字和邮箱地址(这个镜像是谁做的)
  3. 3)RUN——容器构建的时候需要运行的命令/两种形式(shell格式、exec格式)/RUN是在docker build的时候运行
  4. 4)EXPORT——当前容器对外暴露的接口
  5. 5)WORKDIR——指定在创建容器后,终端默认登录的进来的工作目录,落脚点
  6. 6)USER——指定该镜像以什么样的用户去执行,如果不指定,默认为root
  7. 7)ENV——设置配置过程中的环境变量,可以在后续的任何RUN指令使用,这就如同在命令前面指定了环境变量前缀一样,也可以在其他指令中直接使用这些环境变量。
  8. 8)ADD——将宿主机目录下的文件拷贝进镜像且会自动处理url和解压tar压缩包
  9. 9)COPY——类似于ADD,拷贝文件和目录到镜像中。
  10. 10)VOLUME——相当于-v参数
  11. 11)CMD —
    1. 指定容器启动之后要干的事情
    2. 注意
      1. dockerfile中可以多个cmd指令,但是只有一个生效,cmd会被docker run之后的参数替换
    3. 它和RUN命令的区别

  1. ENTPYPOINT
    1. 类似于cmd指令,但是ENTPYPOINT不会被docker run后面的指令覆盖,而且这些指令行参数会被当做参数送给ENTPYPOINT指令指定的程序

实际操作1:

Centos7镜像具备vim+ifconfig+jdk24

下面是我运行的centos的容器,可以发现没有这些东西

编写

首先要去下载一个jdk24包

上传到我们的服务器上

1.编写

[root@iZgw05jp5bgqy10yqsb1heZ myfile]# cat dockerfile

FROM centos

MAINTAINER yyyy@123.com

ENV MYPATH /usr/local

WORKDIR $MYPATH

#安装vim编辑器

RUN yum -y install vim

#安装ifconfig命令查看

RUM yum -y install net-tools

#安装java及lib库

RUN yum -y install glibc.i686

RUN mkdir /usr/local/java

#ADD是相对路径jar,需要把jdk-24_linux-x64_bin.tar.gz添加到与dockerfile文件同一文件夹下

ADD jdk-24_linux-x64_bin.tar.gz /usr/local/java/

#配置java环境变量

ENV JAVA_HOME /usr/local/java/jdk-24_linux-x64_bin

ENV PATH $JAVA_HOME/bin:$PATH

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

EXPOSE 80

CMD echo $MYPATH

CMD echo "success---------------ok"

CMD /bin/bash

报错了,这里是因为指令错误

报错,这里是因为更新源的问题

这里我修改dockerfile文件,提前修改源的地址

#备份一下原来的源文件

RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

#换源

RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

清理缓存并重新生成

RUN yum clean all

RUN yum makecache

再次报错,原来是备份的地址出错了,查看一下正确的地址

原来

重新修改了一下

#备份一下原来的源文件

RUN mv /etc/yum.repos.d/CentOS-Linux-BaseOS.repo /etc/yum.repos.d/CentOS-Base.repo.backup

#换源

RUN curl -o /etc/yum.repos.d/CentOS-Linux-BaseOS.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

清理缓存并重新生成

RUN yum clean all

RUN yum makecache

再次报错

这里还是因为源的原因,所以我这里直接删除所有旧的源

这里我用的centos8,与以往的centos7还源不同,

mv /etc/yum.repos.d/CentOS-Linux-BaseOS.repo CentOS-Linux-BaseOS.repo.bak

mv /etc/yum.repos.d/CentOS-Linux-AppStream.repo CentOS-Linux-AppStream.repo.bak

mv /etc/yum.repos.d/CentOS-Linux-Extras.repo CentOS-Linux-Extras.repo.bak

后面实在没找到问题,我重新搞了一个容器,实操换源

尝试yum -y install vim

成功了

总结命令

#备份

mkdir /etc/yum.repos.d/repo.backup

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.backup

下载阿里云的源

curl -o /etc/yum.repos.d/CentOS-Linux-BaseOS.repo http://mirrors.aliyun.com/repo/Centos-8.repo

上面那个错误是我忘记把中文注释了

下面是成功建立新镜像

docker images

可以看到构建成功

进去看有没有java环境,发现没有,我检查发现,因为环境变量的路径配错了,修改为正确的环境变量就有了

什么是虚悬镜像?

就是在构建或者删除镜像的时候出现一些错误,导致仓库和标签都是none

单独查看虚悬镜像

docker image ls -f dangling=true

删除虚悬镜像

docker image prune

http://www.dtcms.com/a/528341.html

相关文章:

  • 信创入门指南:一文掌握信息技术应用创新的核心要点
  • 基于鸿蒙UniProton的物联网边缘计算:架构设计与实现方案
  • 基于Swin Transformer的脑血管疾病中风影像诊断系统研究
  • 宝安第一网站东莞关键词优化软件
  • 篮球论坛|基于SprinBoot+vue的篮球论坛系统(源码+数据库+文档)
  • SQL 进阶:触发器、存储过程
  • ansible快速准备redis集群环境
  • 公司网站制作效果长沙网站制造
  • 数据结构之堆
  • 【Linux学习笔记】日志器与线程池设计
  • 【Linux系统编程】编辑器vim
  • 鸿蒙ArkTS入门教程:小白实战“易经”Demo,详解@State、@Prop与List组件
  • 扩散模型与UNet融合的创新路径
  • 从入门到精通的鸿蒙学习之路——基于鸿蒙6.0时代的生态趋势与实战路径
  • 704.力扣LeetCode_二分查找
  • 如何做企业网站宣传wordpress 显示空白
  • 机器学习库的线性回归预测
  • 旅游网站开发研究背景北京欢迎您
  • 做网站要学什么东西企业网站运维
  • Orleans Grain Directory 系统综合分析文档
  • 从PN结到GPIO工作模式
  • 面向社科研究者:用深度学习做因果推断(三)
  • 深度学习-MNIST手写数字识别(MLP)
  • K8s 静态持久化存储详解
  • wordpress seo 能提高网站速度吗
  • GitHub等平台形成的开源文化正在重塑特尔恩恩
  • 追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
  • 视频与音频碰撞,谷歌 Veo 3.1,生成“有声电影”,人物对话超震撼
  • 【PID】基本PID控制 chaprt1 学习笔记
  • 【大语言模型 103】推理服务监控:性能指标、故障诊断与自动恢复实战