小伙伴关心的问题:fd楼层配线架(fd漏洞是什么意思),本文通过数据整理汇集了fd楼层配线架(fd漏洞是什么意思)相关信息,下面一起看看。

fd楼层配线架(fd漏洞是什么意思)

上回已经带领大家上手了dflow(dflow HelloWorld),我们对dflow已经有了基本的了解。不过,可能大家对于dflow发布文章里提到的一些术语还是云里雾里,那么今天我们就给大家介绍其中一个术语:容器技术。简单来说,dflow的每一个step都是在容器中执行的,这个容器是由用户提供的镜像而创建的。比如在HelloWorld中,所使用的镜像就是alpine:latest。了解容器和镜像有助于让我们在dflow中实现更多的功能。

from dflow import ShellOPTemplate step1_templ = ShellOPTemplate( name="Hello", image="alpine:latest", script="echo {{inputs.parameters.msg}} > /tmp/msg.txt && echo {{inputs.parameters.number}} > /tmp/results.txt", )

什么是容器

容器本质上是一种轻量的虚拟化技术,用于封装和隔离应用/服务的运行环境。相比于传统的虚拟化技术,容器省去了操作系统的虚拟化,直接在宿主机的操作系统上封装了应用/服务所需要的环境和依赖。使用容器技术,我们可以在MacOS/arm64架构上运行Linux/amd64。

容器技术里有两个常见的术语概念:

镜像(Image): 一个保存环境的文件,方便批量部署实例(Instance)或容器(Container): 基于某个镜像启动的运行实例,用于运行实际的任务。一个镜像可以启动多个容器,不同的容器间相互隔离

Docker

常见的容器化方案有:Docker和Singularity。其中,Docker常常被认为是容器化的代名词,因为他的出现时间早,普及度高。

俯瞰Docker

上图演示了我们使用Docker启动一个名为hello-world的容器:在命令行,使用docker run来启用;这串代码会在 DOCKER_HOST中激活daemon中间层。daemon则会拉取(pull)镜像(image),最后用这个镜像来创建容器(container)

Docker 安装

安装Docker非常简单,可以参考Docker的官方安装指南:Get Docker

从Docker Hub (hub.docker.com)上下载镜像会很慢,可以换成Docker的中国区官方镜像:

Linux上可以直接改/etc/docker/daemon.jsonMac/Windows上可以通过Docker Desktop -> Preferences -> Docker Engine改

参考:Kevin:Docker 国内镜像

Docker 镜像搭建

大多数情况,可以使用DockerHub中的公有镜像,比如在dflow-HelloWorld中我们就使用的是Alpine Linux的官方镜像(Alpine Docker)。在DockerHub中还有很多其他镜像,比如pytorch官方发布的镜像。逛一逛,会有惊喜。不过,如果有特殊需求,比如想把pytorch和pymatgen放在一起,也可以自己编写镜像。

创建镜像,需要编写Dockerfile,比如我们把pytorch和pymatgen放在一起

FROM ubuntu:22.10 RUN apt-get update && apt-get install wget RUN wget --quiet --no-check-certificate https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \ /bin/bash ~/miniconda.sh -b -p /opt/conda && \ rm ~/miniconda.sh && \ ENV PATH /opt/conda/bin:$PATH RUN conda install -yc conda-forge -yc pytorch\ scikit-learn pytorch torchvision pymatgen

以上出现了三个关键的terminology: FROM, ENV 和 RUN. FROM用在最开始,用于表示此镜像的基础镜像。上面的例子使用了ubuntu官方的22.10版本镜像。RUN用于运行一条指令,上面的例子使用了三次,分别用于更新apt-get和安装wget ; 下载安装miniconda和用conda下载安装所有需要的软件。ENV用于设置环境变量。

编写完Dockerfile后,可以在Dockerfile所在目录,运行如下命令,编译此镜像

docker build --tag username/imagename:tagname . --platform linux/amd64

--tag(-t)用于给镜像打标签,username表示用户的dockerhub账号,imagename表示镜像的名称,tagname表示标签的名称。 注意⚠️:这里我们明确了平台--platform linux/amd64。假设我们在MacOS/arm64架构上编译镜像,没有明确平台,docker会默认基于arm64架构,导致Miniconda安装失败。

参考:https://docs.docker.com/engine/reference/commandline/build

通常这个过程需要一些时间,完成之后可以将这个镜像保存于本地,或者将其上传(push)到dockerhub

docker push yourname/imagename:tagname

参考:https://docs.docker.com/engine/reference/commandline/push/

完成以上这几步,你就建立完成了自己的镜像,之后便可以在dflow中提供这个镜像的名称进行使用。

推荐文献

Docker上手指南:How to write the development dockerfileDocker官方命令手册:Commandline ManualDocker中文指南:什么是DockerDockfile格式说明:Dockerfile referenceBest practice of building an image: How to reduce docker image size

更多fd楼层配线架(fd漏洞是什么意思)相关信息请关注本站,本文仅仅做为展示!