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

免费建站自助建站网站总体设计

免费建站自助建站,网站总体设计,厦门做医院网站设计的公司,公司用的邮箱有哪些Dockerfile简介 Dockerfile是什么#xff1f; Dockerfile是用来构建Docker镜像的文本文件#xff0c;是由一条条构建镜像所需的指令和参数构成的脚本 Dockerfile官网 https://docs.docker.com/engine/reference/builder/ Dockerfile构建三步曲 编写Dockerfile文件docke…Dockerfile简介 Dockerfile是什么 Dockerfile是用来构建Docker镜像的文本文件是由一条条构建镜像所需的指令和参数构成的脚本 Dockerfile官网 https://docs.docker.com/engine/reference/builder/ Dockerfile构建三步曲 编写Dockerfile文件docker build 命令构建镜像docker run 依照新编写的镜像运行容器实例 Dockerfile构建过程 Dokcerfile基础知识 1每条保留字指令都必须为大写字母且后面要跟随至少一个参数 2指令按照按照从上到下顺序执行 3表示注释 4每条指令都会创建一个新的镜像层并对镜像进行提交 Docker执行Dockerfile的大致流程 1docker从基础镜像运行一个容器 2执行一条指令并对容器做出修改 3执行类似docker commit 的操作提交一个新的镜像层 4docker再基于刚提交的镜像运行一个新容器 5执行dockerfile中的下一条指令直到所有的指令都执行完 Dockerfile小总结 从应用软件的角度来看Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段 Dockerfile是软件的原材料Docker镜像是软件的交付品Docker容器则可以认为是软件镜像的运行态也即依照镜像运行的容器实例 Dockerfile面向开发Docker镜像成为交付标准Docker容器则涉及部署与运维三者缺一不可合力充当Docker体系的基石。 Dockerfile需要定义一个DockerfileDockerfile定义了进程需要的一切东西。Dockerfile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程当应用进程需要和系统服务和内核进程打交道这时需要考虑如何设计namespace的权限控制等等 Docker镜像在用Docker定义一个文件之后docker build 时会产生一个Docker镜像当运行 Docker镜像时会真正开始提供服务 Docker 容器容器是直接提供服务的 Dockerfile常用保留字 FROM 基础镜像当前新镜像是基于哪一个镜像的指定一个已存在的镜像作为模板第一条必须为FROM MAINTAINER 镜像维护者的名字和邮箱地址 RUN 容器构建时需要运行的命令 两种格式 shell格式 RUN 命令行命令 # 命令行命令 等同于在终端操作的 shell 命令# 例如 RUN yum -y install vim 相当于在build的时候下载一个vimexec格式 RUN [可执行文件, 参数1, 参数2]# 例如 RUN [./test.php, dev, offline] 等价于 RUN ./test.php dev offlineRUN是在 docker build 时运行的 EXPOSE 当前容器对外暴露的端口 WORKDIR 指定在创建容器后终端默认登录的进来工作目录一个落脚点 USER 指定该镜像以什么样的用户去执行如果不指定默认为root ENV 用来在构建镜像过程中设置环境变量 ENV MY_PATH /usr/mytest 这个环境变量可以在后续的任何 RUN 指令中使用这就如同在命令前面指定了环境变量前缀一样 也可以在其他指定中直接使用这些环境变量例如 WORKDIR $MY_PATHADD 将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包 COPY 类似ADD拷贝文件和目录到镜像中。 将从构建上下文目录中 源路径的文件/复制到新的一层的镜像内的目标路径位置 COPY src dest COPY [src, dest] src源路径源文件或源路径 dest目标路径容器内的指定路径该路径不用事先创建好会自动创建VOLUME 容器数据卷用于数据保存和持久化工作 CMD 指定容器启动后要干的事情 CMD 指令与 RUN类似也有两种格式 shell格式 CMD 命令行命令 # 命令行命令 等同于在终端操作的 shell 命令exec格式 CMD [可执行文件, 参数1, 参数2,...]CMD [参数1, 参数2,...] 在指定了 ENTRYPOINT 指令后用 CMD 指定具体的参数注意 Dockerfile中可以有多条CMD指令但只有最后一条生效CMD 会被docker run 之后的参数替换 他与 RUN 的区别 CMD是在docker run 时运行的RUN是在docker build 时运行的 ENTRYPOINT 也是用来指定一个容器启动时要运行的命令 类似于 CMD 指令但是ENTEYPOINT 不会被docker run 后面的命令覆盖而且这些命令行参数会被当作参数传递给 ENTEYPOINT 指令指定的程序 命令格式 ENTRYPOINT [executable, param1, param2]# ENTEYPOINT 可以与 CMD 一起用一般是 变参 才会使用 CMD这里的CMD等于是给ENTEYPOINT 传参 # 当指定了ENTEYPOINT后CMD的含义就发生了变化不再是直接运行其命令而是将CMD的内容作为参数传递给ENTEYPOINT 指令它两组合会变为ENTEYPOINT CMD案例 假设已通过Dockerfile 构建了 nginx:test 镜像 FROM nginxENTEYPOINT [nginx,-c] # 定参 CMD [/etc/nginx/nginx.conf] # 形参是否传参按照dockerfile编写执行传参执行Docker 命令docker run nginx:testdocker run nginx:test -c /etc/nginx/new.conf衍生出的实际命令nginx -c /etc/nginx/nginx.confnginx -c /etc/nginx/new.conf 案例演示 自定义镜像mycentosjava8 需求 要求centos7镜像具备 vim ifconfig jdk8 jdk下载地址 https://mirrors.yangxingzhen.com/jdk/ 编写 1准备Dockerfile文件注意Dockerfile中的D一定要大写 [rootnhk myfile]# pwd /myfile [rootnhk myfile]# ll total 185340 -rw-r--r--. 1 root root 189784266 Jun 4 03:25 jdk-8u152-linux-x64.tar.gz # 准备好的jdk [rootnhk myfile]# docker images centos REPOSITORY TAG IMAGE ID CREATED SIZE centos centos7 eeb6ee3f44bd 20 months ago 204MB # 准备好的cnetos镜像 [rootnhk myfile]# vim DockerfileDockerfile参考内容如下 FROM centos MAINTAINER nhk13605975424163.comENV MY_PATH /usr/local WORKDIR $MY_PATH# 安装vim编辑器 RUN yum -y install vim # 安装ifconfig命令查看网络IP RUN yum -y install net-tools # 安装java8及lib库 RUN yum -y install glibc.i686 RUN mkdir /usr/local/java # ADD 是相对路径jar把 jdk-8u152-linux-x64.tar.gz 添加到容器中安装包必须要和Dockerfile文件在同一位置 ADD jdk-8u152-linux-x64.tar.gz /usr/local/java/ # 配置Java环境变量 ENV JAVA_HOME /usr/local/java/jdk1.8.0_152 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH $JAVA_HOME/bin:$PATHEXPOSE 80CMD echo $MYPATH CMD echo success-------------------ok CMD /bin/bash构建 docker build -t 新镜像名字:TAG . # 需要注意TAG 后面有个 .[rootnhk myfile]# docker build -t mycentosjava8:1.5 . [] Building 160.4s (12/12) FINISHED [internal] load .dockerignore 0.0s transferring context: 2B ...如果构建过程中遇到如下报错 ERROR [3/7] RUN yum -y install vim 1.8s ------ [3/7] RUN yum -y install vim: #0 1.696 CentOS Linux 8 - AppStream 34 B/s | 38 B 00:01 #0 1.698 Error: Failed to download metadata for repo appstream: Cannot prepare internal mirrorlist: No URLs in mirrorlist ------ Dockerfile:8 --------------------6 | 7 | # 安装vim编辑器8 | RUN yum -y install vim9 | # 安装ifconfig命令查看网络IP10 | RUN yum -y install net-tools -------------------- ERROR: failed to solve: process /bin/sh -c yum -y install vim did not complete successfully: exit code: 1我们修改Dockerfile文件中镜像版本信息即可解决 FROM centos:centos7 # 添加版本 MAINTAINER nhk13605975424163.comENV MY_PATH /usr/local WORKDIR $MY_PATH .... 运行 [rootnhk myfile]# docker run -it --name mycnentos7test mycentosjava8:1.5 [roote7d8ce7b2d37 local]# pwd # 尽量工作目录直接就是 /usr/local 说明我们WORKDIR配置成功 /usr/local [roote7d8ce7b2d37 local]# vim [roote7d8ce7b2d37 local]# java -version java version 1.8.0_152 Java(TM) SE Runtime Environment (build 1.8.0_152-b16) Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode) [roote7d8ce7b2d37 local]# 再次体会 Unionfs联合文件系统 ​ UnionFS联合文件系统UnionFS文件系统UnionFS是一种分层、轻量级并且高性能的文件系统它支持对文件系统的修改作为一次提交来一层层的叠加同时可以将不同目录挂载到同一个虚拟文件系统下unite several directories into a singls virtual filesystem。Union文件系统是 Docker 镜像的基础。镜像通过分层来进行继承基于基础镜像没有父镜像可以制作各自具体的应用镜像。 虚悬镜像 什么是虚悬镜像 仓库名、标签都是 的镜像俗称 dangling image 查看虚悬镜像的命令 docker image ls -f danglingtrue用Dockerfile制作一个虚悬镜像 1编写Dockerfile文件 [rootnhk myfile]# mkdir test [rootnhk myfile]# cd test/ [rootnhk test]# pwd /myfile/test [rootnhk test]# vim Dockerfile [rootnhk test]# Dockerfile参考内容如下 FROM ubuntu CMD echo action is success2docker build构建镜像 [rootnhk test]# docker build . [] Building 0.1s (5/5) FINISHED [internal] load build definition from Dockerfile 0.0s transferring dockerfile: 135B 0.0s [internal] load .dockerignore 0.0s transferring context: 2B 0.0s [internal] load metadata for docker.io/library/ubuntu:latest 0.0s [1/1] FROM docker.io/library/ubuntu 0.0s exporting to image 0.0s exporting layers 0.0s writing image sha256:e39580f94507868694e52fb093f68d5e7f146199a46c1b0e4cf28c2c05c4bf12 0.0s [rootnhk test]# 3查看镜像 [rootnhk test]# docker image ls -f danglingtrue REPOSITORY TAG IMAGE ID CREATED SIZE none none e39580f94507 19 months ago 72.8MB4删除虚悬镜像 虚悬镜像已经失去了存在的价值可以删除 [rootnhk test]# docker image prune WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] y Deleted Images: deleted: sha256:e39580f94507868694e52fb093f68d5e7f146199a46c1b0e4cf28c2c05c4bf12Total reclaimed space: 0B [rootnhk test]# 自定义镜像myubuntu 1编写Dockerfile文件 [rootnhk myfile]# mkdir myubuntu [rootnhk myfile]# cd myubuntu/ [rootnhk myubuntu]# pwd /myfile/myubuntu [rootnhk myubuntu]# vim DockerfileDockerfile文件内容如下 FROM ubuntu MAINTAINER nhk13606975424163.comENV MYPATH /usr/local WORKDIR $MYPATHRUN apt-get update # RUN apt-get install net-toolsEXPOSE 80CMD echo $MYPATH CMD echo install inconfig cmd into ubuntu success... ok CMD /bin/bash2docker build 构建镜像 [rootnhk myubuntu]# docker build -t myubuntu:6.6 . ...[rootnhk myubuntu]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE myubuntu 6.6 519211dbf26a 6 minutes ago 72.8MB3运行新镜像 [rootnhk myubuntu]# docker run -it myubuntu:6.6 rootb94a506968bf:/usr/local#
http://www.hkea.cn/news/14367269/

相关文章:

  • 网站策划的工作要求绍兴公司做网站
  • 我英文网站建设铁门关网站建设
  • 交网站建设域名计入什么科目网站推广seo软件
  • 营销型网站建设价格是多少极客wordpress主题
  • 做网站商机app开发技术路线
  • 西安搭建网站脚上起小水泡很痒是什么原因
  • 江门学做网站课程创建网站多少钱
  • 怎么建立一个自己的网站网络基础知识点
  • 建设一个网站的意义wordpress win8主题
  • 网站动态设计效果精美图片做网站上哪儿去找图
  • 营销网站搭建企业网络营销策划与分析
  • 兰州网站建设专业网站建设网站
  • 北京做网站公司推荐做理财的网站好
  • 网站没有排名购物网站设计目的
  • 无人机公司网站建设班级文化墙设计图片
  • 做西餐网站做家政服务类网站的要求
  • 海宁营销型网站设计建设营销型网站流程
  • 潍坊网站建设8年二手网站建设情况
  • 网站外包维护一年多少钱网站建设费用还是网络专业
  • 网站添加验证码镇江网站建设网站
  • 网站建设三方协议知名软装设计公司
  • 泰安做网站网站建设的实训报告怎么写
  • 长安响应式网站建设做网站软件 wordpage
  • 深圳网站建设类公司宁波seo搜索优化费用
  • 语言网站开发企业艺术学院网站建设管理办法
  • 系部网站建设方案iis 创建网站
  • 电商网站怎么建设小语种企业网站建设
  • 自助建站系统有什么好处网站开发过程的数据交互
  • 大连做网站比较好的公司福州做网站建设服务商
  • 星巴克网站建设ppt深圳做网站比较好