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

青岛北京网站建设公司wordpress 即时联系

青岛北京网站建设公司,wordpress 即时联系,策划书word模板范文,西安网站排名优化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/403531.html

相关文章:

  • SpringBoot结合PostGIS在省级旅游口号管理中的应用实践
  • RedisFront:一款免费开源的跨平台Redis客户端工具
  • 数据中心网络架构的“南北向”和“东西向”
  • 法律网站的建设流程免费模板素材软件
  • 支持17种方言10种外语!阿里最新AI语音合成模型Qwen3-TTS-Flash震撼发布
  • Apache Doris性能优化全解析:慢查询定位与引擎深度调优
  • 境外电商网站建设崇州网站建站
  • 可学习性(Learnability)条件:什么样的学习问题是有解的?
  • 动态规划算法初识--斐波那契数列模型
  • Linux网络:使用UDP实现网络通信(网络套接字的创建绑定)
  • 第一次培训
  • 端侧多模态大模型MiniCPM-V 4.5技术报告解析
  • 【环境配置】macbook 配置环境变量
  • 位运算解题1:找数组中唯一成对的那个数
  • 织梦网做网站洛阳网站制作哪家好
  • 动态ip建设网站深圳英文网站建设去哪家
  • 【香橙派开发笔记】初次使用与ubuntu系统安装
  • SAP GUI Script简单案例
  • Nestjs框架: 番外篇之如何基于VsCode调试nodejs项目
  • 手机app网站铜仁做网站公司
  • 基于Cesium倾斜摄影数据的多区域裁剪 / 挖空
  • PyTorch 中可以实现张量形状的改变的有几种方式
  • 三亚市住房与城乡建设局网站企业展馆展厅设计公司
  • Linux----使用vim编辑器
  • [Spring_SpringBoot_Redis] Redis stater
  • 超细整理,保险寿险项目测试项目分析+面试(详细)
  • 濮阳网站设计公司wordpress的编辑器在哪个目录
  • 【Linux】如何通过uptime查看系统负载是否过高?
  • PostgreSQL 16 Administration Cookbook 读书笔记:第10章 Performance and Concurrency
  • Elasticsearch 7.15索引模板介绍