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

网站建设联系我们设计网站无锡

网站建设联系我们,设计网站无锡,厦门网站建设哪家强,电子商务网站建设定位设想1 Dockerfile 1.1 什么是Dockerfile Dockerfile是一个文本文件#xff0c;包含一系列命令#xff0c;这些命令用于在 Docker 镜像中自动执行操作。Dockerfile 定义了如何构建 Docker 镜像的步骤和所需的操作。 Dockerfile 中包含的命令可以设置和定制容器的环境#xff0c;…1 Dockerfile 1.1 什么是Dockerfile Dockerfile是一个文本文件包含一系列命令这些命令用于在 Docker 镜像中自动执行操作。Dockerfile 定义了如何构建 Docker 镜像的步骤和所需的操作。 Dockerfile 中包含的命令可以设置和定制容器的环境包括安装软件、设置系统参数、添加文件和目录等等。在运行时这些命令将自动执行以构建所需的容器。 使用 Dockerfile 构建镜像有如下优点 可重复性Dockerfile 中的指令可以被重复执行以生成相同构建的镜像。可跟踪性Dockerfile 中的每一个指令都会生成一层镜像并且每层镜像都有唯一的 ID。这可以方便地跟踪镜像的构建历史。自动化Dockerfile 中的指令可以自动化构建过程并且能简化构建过程。例如如果在容器中需要安装多个软件包那么可以将这个操作自动化而不是手动执行。 1.2 Dockerfile指令 Dockerfile 是用于定义 Docker 镜像构建指令的文件。下面是 Dockerfile 中最常用的一些指令。 1、FROM指定一个基础镜像。在 Dockerfile 中必须从一个已有的镜像构建所需的镜像。 2、RUN在当前镜像的文件系统上执行命令。执行RUN指令后Docker 会将当前镜像的文件系统和状态提交为新的镜像。 3、CMD容器启动后要执行的命令。可以使用多种方式定义 CMD 指令以执行指定操作。 4、WORKDIR指定在容器中要使用的某个目录。 5、COPY 或 ADD 将文件或目录从构建上下文复制到新镜像中。COPY 复制本地文件夹的方法。ADD 可以将远程文件作为 URL 复制过来并解压缩。 6、EXPOSE容器开放的端口。该指令通知Docker容器在运行时监听指定的网络端口。你可以指定端口监听的是TCP还是UDP如果没有指定协议默认是TCP。 7、ENV设置环境变量。 8、ARG定义构建时可用的变量。 1.3 Dockerfile示例 创建Dockerfile文件 mkdir -p /opt/df/demo1 # 创建存放Dockerfile的文件夹 cd /opt/df/demo1 # 进入该文件夹 vim Dockerfile  # 创建示例文件 Dockerfile文件中的内容如下 FROM rockylinux:9.0 RUN yum install -y java-17-openjdk-devel CMD java -version 使用build命令基于Dockerfile构建Docker镜像 docker build -t java17:latest . # java17:latest 是新的image名称 .表示Dockerfile文件在当前目录下 查看镜像 运行镜像 2 镜像分层 2.1 什么是镜像分层 在 Docker 中镜像有一个很重要的特性叫做分层。这是一种轻量级的虚拟化机制可以帮助用户更加高效地制作和管理容器镜像。 每个镜像都由一系列分层的文件系统组成每一层都包含了特定软件包、库和文件。当我们从一个已有的镜像构建容器时Docker会利用这些分层文件系统来向容器提供所需的文件和配置信息。 2.2 镜像分层的优点 镜像分层最大的一个好处就是共享资源。 1、易于更新和维护只需更新需改的一层即可其他层可以不变避免了不必要的构建和复制。 2、空间利用率高同样大小的源码只需要存储一次以后每个基础镜像只需要存储在它前一个基础镜像之上的那一层的数据即可。 3、加快镜像构建在构建时Docker 可以轻松地缓存已经存在的层当下次构建时只需要重复利用已有的层即可快速进行增量式更新。 4、更好的镜像交付分层的机制使得将一个完整的应用程序打包成一个镜像更加容易不同样层可以用于不同的应用场景。 2.3 可写的容器层 在 Docker 中每次从镜像启动容器时Docker 会自动创建一个可写的容器层也称为容器快照层用于保存容器中的写入操作结果。这个可写层会在容器启动时创建可以对容器进行修改、更新等操作但不会影响到镜像本身。 具体来说每个容器层都是由一个只读的基础镜像层和一个可写的容器层组成。当容器需要从镜像中获取文件系统时它会在基础镜像层中搜索文件如果找到了则直接返回如果没有找到则会在容器层中搜索。如果找到则会将它返回给容器。 可写的容器层允许我们创建和更改文件、目录、文件权限和用户等等这样我们就可以制定应用程序所需的环境和设置了。它也是容器打包交付的开发流程中一个重要的组成部分我们可以将容器层中的数据打包成独立的Docker镜像以供部署。 需要注意的是可写层存储的内容是暂时性的当容器被删除时容器层中的所有内容也会被删除。我们应该保证重要数据的备份和持久性存储不要放在容器层中保存。 2.4 容器层的细节 当我们使用 Docker 运行一个容器时Docker会将镜像层叠加在一起。在容器层中用户看到的是一个由所有镜像层叠加之后的文件系统。不同层中有一个相同路径的文件比如 /a上层的 /a 会覆盖下层的 /a在最终的容器中只保留了上层镜像中的 /a 文件。 1、添加文件在容器中创建文件时新文件被添加到容器层中。 2、读取文件在容器中读取某个文件时Docker 会从上往下依次在各镜像层中查找此文件。一旦找到立即将其复制到容器层然后打开并读入内存。 3、修改文件在容器中修改已存在的文件时Docker 会从上往下依次在各镜像层中查找此文件。一旦找到立即将其复制到容器层然后修改之。 4、删除文件在容器中删除文件时Docker 也是从上往下依次在镜像层中查找此文件。找到后会在容器层中记录下此删除操作。只是记录删除操作 只有当需要修改时才复制一份数据这种特性被称作Copy-on-Write。容器层记录对镜像的修改所有镜像层都是只读的不会被容器修改所以镜像可以被多个容器共享。 3 Docker 网络 3.1 Docker网络概述 Docker网络是Docker提供的用于容器间通信以及容器与主机或其他网络实体之间通信的解决方案。Docker支持多种类型的网络可以根据不同的场景选择不同的网络方案。 Docker 的网络子系统使用了基于驱动程序的可插拔设计。Docker默认存在多种网络驱动程序较为常用的有 1、bridge是Docker的默认网络驱动Docker 容器启动时会自动创建一个与主机相连的虚拟网络桥接然后将容器连接到这个桥接上。容器之间可以通过容器名称访问而不需要暴露端口。 如果两个容器属于同一个网络如默认的 bridge 网络则容器之间可以使用不同的网络配置通过网络互相通信。当容器不具有公共IP时可以用容器名称来代替IP地址。 2、host网络驱动不会为容器创建额外的网络命名空间而是容器直接使用主机的网络命名空间实现容器与主机之间的通信。使用 host 网络驱动可以提高网络性能但是容器之间无法直接相互通信只能通过主机来中转。 3、none网络驱动表示容器没有任何网络接口即没有网络连接只有回环地址。在某些场景下可能会使用到这种网络类型例如一个完全隔离的容器场景。 需要注意的是Docker 内置的网络驱动并不支持跨主机的容器通信如果需要在多台主机的 Docker 容器之间通信可以使用第三方的网络插件如Weave Net、Calico等。 3.2 Docker网络操作 Docker Network命令是Docker提供的用于管理网络的子命令集合可以使用这些命令来创建、删除、连接和断开连接Docker容器的网络以及查看已存在的网络等操作。以下是一些常用的 Docker Network 命令和说明 1、create这个命令用于创建一个 Docker 网络。通过指定不同的网络驱动程序和选项可以创建不同类型的网络。 例如docker network create --driver bridge my-bridge-network将创建一个名为my-bridge-network的桥接网络 2、ls用来列出所有现有的 Docker 网络。 3、inspect用来查看某个 Docker 网络的详细信息。 4、connect使用该命令可以将一个已启动的 Docker 容器连接到一个指定的网络上。 docker network connect my-bridge-network container-name 5、disconnect使用该命令可以将已连接到 Docker 网络的某个容器与网络断开连接。 docker network disconnect my-bridge-network container-name 3.3 Docker网络示例 本示例展示创建MariaDB服务器容器并通过MaraiDB客户端和其他客户端实现对MariaDB服务器容器的访问。 首先创建一个新的桥接网络         docker network create new-network 然后查看当前主机的所有网络 docker network ls 创建一个MariaDB的容器连接到new-network网络 docker run --detach --network new-network --name myMariadb --env MARIADB_USERroot --env MARIADB_PASSWORDroot --env MARIADB_ROOT_PASSWORDroot  mariadb:10.3 其中 –env是配置镜像使用的环境变量本例中是为MariaDB数据库配置初始的用户名和密码。 创建完成的镜像可能自动关闭使用docker ps -a命令查看镜像运行状态如果没有处于运行状态使用docker start命令启动该镜像。 通过如下命令启动一个MariaDB的客户端 docker run -it --network new-network --rm mariadb:10.3 mysql -hmyMariadb -uroot -proot 上述命令中 --network new-network将容器绑定到new-network--rm容器退出后自动删除mariadb:10.3镜像的名称和版本mysql -hmyMariadb -uroot -proot进入容器后执行的命令启动MaraiaDB客户端访问主机名为myMariadb的服务器这里是直接使用了前面启动的容器的名称作为主机名
http://www.pierceye.com/news/440250/

相关文章:

  • 深圳做网站好的公司wordpress建菜单
  • 网站编辑需要的技能做网站需要什么域名
  • 营销型网站建设目的和意义网站托管方案
  • 网站感谢页面企业标志图片大全
  • 响应式网站建设必推全网天下邵阳竞价网站建设设计
  • 大连网站如何制作辽阳公司做网站
  • 百度站长怎么验证网站jekyll做公司网站
  • 电子商务公司建设网站方案设计网站建设开发背景
  • 同一产品做多个网站山西省住房和城乡建设厅官网
  • 网站建设的流程是什么意思微信小程序的代码
  • 广州网站整站优化html项目案例实战
  • 宁波网站推广方式seo优化按天扣费
  • 紫金优化网站制作python编程100例
  • 原阳网站建设哪家好域名网址
  • 西安学校网站建设wordpress手机端模板下载
  • 泉州网站建设工作室网站上的产品板块
  • 平顶山网站网站建设网页设计与制作教程 刘瑞信 pdf
  • 网站开发深天津设计公司排行榜
  • 做tcf法语听力题的网站公司网页简介
  • 十堰做网站最专业的公司深圳企业网查询
  • 购物网站大全排名调查drupal与wordpress哪个容易
  • 网站建设彳金手指排名网站开发完没人运营
  • 网站建设是设开发公司质量管理流程
  • 金沙网站怎么做代理wordpress tag=
  • 做网站必须花钱吗建筑人才网证书查询
  • 0基础网站建设模板工商注册官方网站
  • 河南网站设计公司价格网站在建设中是什么意思
  • 网站建设公司的成本有哪些方面四川省城乡建设网查询
  • 和什么人合作做游戏视频网站做推送网站
  • 做竞价网站访问突然变少施工企业负责人带班检查计划