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

上海商务网站建设网站服务器租用怎样收费

上海商务网站建设,网站服务器租用怎样收费,做自己的网站不是免费的,如何修改WordPress账号一、说明 在过去的 5 年里#xff0c;我听到了很多关于 docker 容器的嗡嗡声。似乎我所有的软件工程朋友都在使用它们来开发应用程序。我想弄清楚这项技术如何使我更有效率#xff0c;但我发现网上的教程要么太详细#xff1a;阐明我作为数据科学家永远不会使用的功能#… 一、说明         在过去的 5 年里我听到了很多关于 docker 容器的嗡嗡声。似乎我所有的软件工程朋友都在使用它们来开发应用程序。我想弄清楚这项技术如何使我更有效率但我发现网上的教程要么太详细阐明我作为数据科学家永远不会使用的功能要么太肤浅没有给我足够的信息来帮助我了解如何快速有效地使用 Docker。         我写了这个快速入门所以你不必解析所有的信息而是可以学习你需要知道的事情以便快速入门。 二、什么是 Docker         您可以将 Docker 视为轻量级虚拟机其中包含运行应用程序所需的一切。docker 容器可以捕获系统状态的快照以便其他人可以快速重新创建您的计算环境。这就是本教程需要了解的全部内容但有关更多详细信息您可以前往此处。 三、为什么要使用 docker 可重复性作为一名专业数据科学家您的工作具有可重复性非常重要。可重复性不仅有助于同行评审而且确保您构建的模型、应用程序或分析可以毫无摩擦地运行从而使您的可交付成果更加稳健并经得起时间的考验。例如如果你在python中构建了一个模型仅仅运行pip-freeze并将结果的需求.txt文件发送给你的同事通常是不够的因为这只会封装python特定的依赖项 - 而通常存在存在于python之外的依赖项例如操作系统编译器驱动程序配置文件或代码成功运行所需的其他数据。即使你可以只共享 python 依赖项将所有内容包装在 Docker 容器中也可以减轻其他人重新创建环境的负担并使你的工作更易于访问。计算环境的可移植性作为数据科学家尤其是在机器学习领域能够快速更改计算环境可以极大地影响您的工作效率。数据科学工作通常从原型设计、探索和研究开始——这些工作不一定需要专门的计算资源。这项工作通常发生在笔记本电脑或个人计算机上。但是经常会出现不同的计算资源会大大加快您的工作流程例如具有更多 CPU 的机器或用于深度学习等功能的更强大的 GPU。我看到许多数据科学家将自己限制在本地计算环境中因为在远程计算机上重新创建本地环境存在摩擦。Docker 使移植环境所有库、文件等的过程变得非常容易。在 Kaggle 竞赛中快速移植计算环境也是一个巨大的竞争优势因为您可以以经济高效的方式利用 AWS 上宝贵的计算资源。最后创建 docker 文件允许您移植许多您喜欢的本地环境例如 bash 别名或 vim 插件。 增强您的工程能力熟悉 Docker 可以让您将模型或分析部署为应用程序例如作为可以提供预测服务的 REST API 端点从而使其他人可以访问您的工作。此外作为数据科学工作流程的一部分您可能需要与之交互的其他应用程序可能存在于 Docker 容器中例如数据库或其他应用程序。 四、Docker 术语 在我们深入之前熟悉 Docker 术语很有帮助 图像是您想要构建的蓝图。例如带有 Nvidia 驱动程序和正在运行的 Jupyter 服务器的 Ubuntu TensorFlow。容器是您赋予生命的图像的实例。您可以运行同一映像的多个副本。掌握镜像和容器之间的区别非常重要因为这是新手容易混淆的一个原因。如果图像和容器之间的区别不清楚请停止并再次阅读。Dockerfile创建映像的配方。Dockerfile 包含特殊的 Docker 语法。来自官方文档A 是一个文本文档其中包含用户可以在命令行上调用以组装图像的所有命令。Dockerfile提交与 git 一样Docker 容器提供版本控制。您可以通过提交更改随时将 docker 容器的状态另存为新映像。DockerHub/Image Registry人们可以发布公共或私有docker 镜像以促进协作和共享的地方。层对现有映像的修改由 Dockerfile 中的指令表示。图层按顺序应用于基础映像以创建最终映像。         我将在帖子的其余部分使用此术语因此如果您迷路了请参阅此列表这些术语之间很容易混淆尤其是在图像和容器之间——所以在阅读时要保持警惕 五、创建您的第一个 Docker 镜像         在创建 docker 容器之前创建一个将定义映像的 Dockerfile 非常有用。让我们慢慢地浏览下面的 Dockerfile。可以在本教程随附的 Github 存储库中找到此文件。 # reference: https://hub.docker.com/_/ubuntu/ FROM ubuntu:16.04# Adds metadata to the image as a key value pair example LABEL version1.0 LABEL maintainerHamel Husain youremailgmail.com##Set environment variables ENV LANGC.UTF-8 LC_ALLC.UTF-8RUN apt-get update --fix-missing apt-get install -y wget bzip2 ca-certificates \build-essential \byobu \curl \git-core \htop \pkg-config \python3-dev \python-pip \python-setuptools \python-virtualenv \unzip \ \ apt-get clean \ rm -rf /var/lib/apt/lists/*RUN echo export PATH/opt/conda/bin:$PATH /etc/profile.d/conda.sh \wget --quiet https://repo.continuum.io/archive/Anaconda3-5.0.0.1-Linux-x86_64.sh -O ~/anaconda.sh \/bin/bash ~/anaconda.sh -b -p /opt/conda \rm ~/anaconda.shENV PATH /opt/conda/bin:$PATHRUN pip --no-cache-dir install --upgrade \altair \sklearn-pandas# Open Ports for Jupyter EXPOSE 7745#Setup File System RUN mkdir ds ENV HOME/ds ENV SHELL/bin/bash VOLUME /ds WORKDIR /ds ADD run_jupyter.sh /ds/run_jupyter.sh RUN chmod x /ds/run_jupyter.sh# Run a shell script CMD [./run_jupyter.sh] 5.1 FROM 语句 FROM ubuntu:16.04         FROM 语句封装了 Docker 最神奇的部分。此语句指定要在其上构建的基础映像。使用 FROM 指定基本映像后Docker 将在本地环境中查找名为 ubuntu16.04 的映像 — 如果在本地找不到它它将搜索您指定的 Docker 注册表默认情况下为 DockerHub。这种分层机制很方便因为您经常希望在 Ubuntu 等操作系统之上安装程序。与其担心如何从头开始安装 Ubuntu不如简单地在官方 Ubuntu 映像之上构建Dockerhub上托管了各种各样的Docker镜像包括那些提供的不仅仅是操作系统的镜像例如如果你想要一个已经安装了Anaconda的容器你可以在官方的anaconda docker镜像之上构建一个容器。最重要的是您还可以随时发布您构建的映像即使该映像是通过在另一个映像上分层创建的可能性是无穷无尽的。         在这个例子中我们指定我们的基础映像是 ubuntu16.04它将查找一个名为 ubuntu 的 DockerHub 存储库。冒号 — 16.04 之后的映像名称部分是允许您指定要安装的基础映像版本的标记。如果你导航到 Ubuntu DockerHub 存储库你会注意到不同版本的 Ubuntu 对应着不同的标签         例如在撰写本文时ubuntu16.04、ubuntuxenial-20171201、ubuntuxenial 和 ubuntulatest 都引用了 Ubuntu 版本 16.04并且都是同一映像的别名。此外此存储库中提供的链接将您链接到用于为每个版本构建映像的相应 Dockerfile。您不会总是在 DockerHub 存储库中找到 Dockerfiles因为维护者可以选择包含他们如何制作映像的 Dockerfile。我个人发现查看其中几个 Dockerfile 以更多地了解 Dockerfile 很有用但请等到您完成本教程         有一个标签值得特别提及 — latest 标签。此标记指定如果未在 FROM 语句中指定标记则默认情况下将提取的内容。例如如果 FROM 语句如下所示 FROM ubuntu         然后你最终会拉出 ubuntu16.04 映像。为什么— 如果你仔细看上面的截图你会看到 latest 标签与 16.04 相关联         关于 Docker 镜像的最后一点从 DockerHub 随机提取 Docker 镜像时要做出明智的判断。由恶意行为者创建的 Docker 映像可能包含恶意软件。 5.2 标签声明         此语句将元数据添加到映像中并且是完全可选的。我添加它是为了让其他人知道该联系谁来了解该映像也可以这样我就可以搜索我的 docker 容器尤其是当服务器上有许多容器同时运行时。 LABEL maintainerHamel Husain youremail 5.3 环境声明 ENV LANGC.UTF-8 LC_ALLC.UTF-8         这允许您更改环境变量并且非常简单。您可以在此处阅读有关此内容的更多信息。 5.4 运行语句         这通常是完成构建 Docker 映像所需的工作的主力。您可以运行任意 shell 命令如 apt-get 和 pip install来安装所需的包和依赖项。 RUN apt-get update --fix-missing apt-get install -y wget bzip2 build-essential \ca-certificates \git-core \...         在这种情况下我正在安装一些我喜欢的实用程序例如curlhtopbyobu然后安装anaconda然后安装基本anaconda安装中没有的其他库向上滚动到完整的Dockerfile以查看所有RUN语句。         RUN 语句后面的命令与 Docker 无关而是您自己安装这些软件包时会运行的普通 linux 命令因此如果您不熟悉其中一些软件包或 linux 命令请不要担心。另外作为进一步的建议——当我第一次开始学习 docker 时我查看了 Github 或 DockerHub 上的其他 Dockerfile并将我想要的相关部分复制并粘贴到我的 Dockerfile 中。         关于 RUN 语句您可能会注意到的一件事是格式设置。每个库或包都整齐地缩进并按字母顺序排列以提高可读性。这是 Dockerfiles 的普遍约定所以我建议你采用它因为它会简化协作。 5.5 暴露语句         如果您尝试公开端口则此语句很有用 - 例如如果您从容器或某种 Web 服务内部提供 jupyter 笔记本。Docker的文档在解释EXPOSE 语句方面非常好 该指令实际上并不发布端口。它充当构建映像的人和运行容器的人员之间的一种文档类型关于要发布的端口。若要在运行容器时实际发布端口请使用标志 on 发布和映射一个或多个端口或使用标志发布所有公开的端口并将其映射到高阶端口。EXPOSE-pdocker run-P 5.6 卷语句 VOLUME /ds         此语句允许您在 docker 容器和主机之间共享数据。VOLUME 语句允许您装入外部装入的卷。主机目录仅在运行容器时声明因为您可能在不同的计算机上运行此容器而不是在定义映像时声明*。目前您只需指定要与主机容器共享的 docker 容器中文件夹的名称。         从 docker 用户指南 *主机目录在容器运行时声明主机目录挂载点本质上依赖于主机。这是为了保持图像的可移植性。因为无法保证给定的主机目录在所有主机上都可用。因此您无法从 Dockerfile 中挂载主机目录。该指令不支持指定参数。创建或运行容器时必须指定装入点。VOLUMEhost-dir         此外这些卷旨在将数据保存在容器的文件系统之外如果您正在处理不希望使 docker 映像膨胀的大量数据这通常很有用。保存 docker 映像时此 VOLUME 目录中的任何数据都不会保存为映像的一部分但将保存容器中此目录之外的数据。 5.7 工作路径声明 WORKDIR /ds         此语句设置工作目录以防要在另一个命令中引用没有绝对路径的特定文件。例如Dockerfile 中的最后一条语句是 CMD [“./run_jupyter.sh”] 假设工作目录为 /ds 5.8 ADD 语句         编辑 8/24/2020您现在应该使用 COPY 语句而不是 ADD 语句。  ADD run_jupyter.sh /ds/run_jupyter.sh         此命令允许您在运行 docker 容器时将文件从主机复制到 docker 容器中。我使用它来执行 bash 脚本并将有用的东西导入容器中例如 .bashrc 文件。         请注意此处未完全指定主机容器的路径因为主机路径相对于运行容器时指定的上下文目录稍后将讨论。         碰巧的是当我运行这个容器时我会将文件run_jupyter.sh在上下文目录的根目录中所以这就是为什么源文件前面没有路径的原因。         从用户指南 ADD src... dest 该指令从中复制新文件、目录或远程文件 URL并将它们添加到路径 中的映像文件系统中。ADDsrcdest 5.9 CMD声明         Docker 容器的设计理念是它们是短暂的只会保持足够长的时间来完成要运行的应用程序。但是对于数据科学我们通常希望保持这些容器运行即使其中没有任何活动运行。许多人通过简单地运行一个 bash shell除非你杀死它否则不会终止来实现这一点的一种方式。 CMD [“./run_jupyter.sh”]         在上面的命令中我正在运行一个实例化 Jupyter 笔记本服务器的 shell 脚本。但是如果您没有任何要运行的特定应用程序但希望容器在不退出的情况下运行 — 则可以使用以下命令简单地运行 bash shell CMD [/bin/bash]         这是有效的因为 bash shell 在您退出之前不会终止因此容器保持正常运行。         从用户指南 a 中只能有一个指令。如果您列出多个则只有最后一个会生效。CMDDockerfileCMDCMD a 的主要目的是 为执行容器提供默认值。这些默认值可以包含可执行文件也可以省略可执行文件在这种情况下您还必须指定指令。CMDENTRYPOINT 六、构建您的 Docker 镜像         别担心从这里开始其他一切都相当简单。现在我们已经以 DockerFile 的形式创建了我们的配方是时候构建映像了。您可以通过以下命令完成此操作 也可在 Github 上使用 这将构建一个 docker 镜像不是容器如果你不记得有什么区别请阅读本文开头的术语然后你可以在以后运行它。 七、从 Docker 映像创建并运行容器 现在您已准备好将所有这些魔力付诸实践。我们可以通过执行以下命令来启动此环境         也可在 Github 上使用         运行此命令后您的容器将启动并运行Jupyter 服务器将运行因为 CMD [“./run_jupyter.sh”]         命令在 Dockerfile 的末尾。现在您应该能够在 jupyter 笔记本提供服务的端口上访问它 — 在此示例中它应该可以通过密码教程从 http://localhost:7745/ 访问。 如果你远程运行这个 docker 容器你必须设置 local 端口转发以便你可以从浏览器访问 jupyter 服务器。 八、与容器交互 容器启动并运行后以下命令将派上用场 将新的终端会话附加到容器。如果您需要安装某些软件或使用 shell这将非常有用。 将容器的状态另存为新映像。即使您一开始使用的是包含要安装的所有库的 Dockerfile但随着时间的推移您可能会通过以交互方式添加更多库和包来显著更改容器的状态。将容器的状态另存为稍后可以共享或分层的图像非常有用。您可以使用 docker commit CLI 命令来完成此操作 docker commit container_name new_image_name:tag_name(optional)         例如如果我想将名为 container1 的容器的状态保存为名为 hamelsmu/tutorialv2 的图像我只需运行以下命令 docker commit container_1 hamelsmu/tutorial:v2         你可能想知道为什么hamelsmu/在镜像名称的前面——这只是让以后更容易地将这个容器推送到DockerHub因为hamelsmu是我的DockerHub用户名稍后会详细介绍。如果您在工作中使用 Docker则很可能有一个内部私有 Docker 存储库您可以将 Docker 映像推送到该存储库。 列出正在运行的容器。当我忘记当前正在运行的容器的名称时我经常使用它。 docker ps -a -f statusrunning 如果您在没有 statusrunning 标志的情况下运行上述命令那么您将看到系统上所有容器的列表即使它们不再运行。这对于跟踪旧容器很有用。 列出已保存在本地的所有图像。 docker images 将您的映像推送到 DockerHub或其他注册表。如果您想与他人共享您的工作或方便地将图像保存在云中这将非常有用。请注意在执行此操作时不要共享任何私有信息DockerHub上也有私有存储库。         首先创建一个 DockerHub 存储库并适当地命名您的映像如此处所述。这将涉及运行命令docker login以首先连接到DockerHub或其他注册表上的帐户。例如要将图像推送到此容器我首先必须将我的本地映像命名为 hamelsmu/tutorial我可以选择任何标签名称 例如CLI 命令 docker push hamelsmu/tutorial:v2         将上述 docker 映像推送到带有标记 v2 的此存储库。应该注意的是如果你让你的镜像公开可用其他人可以简单地在你的镜像上分层就像我们在本教程中向 ubuntu 镜像添加层一样。这对于寻求复制或扩展您的研究的其他人非常有用。 九、现在你拥有超能力 现在您已经知道如何操作 Docker您可以执行以下任务 与同事和朋友分享可重复的研究。通过根据需要将代码临时移动到更大的计算环境在不破产的情况下赢得 Kaggle 比赛。在笔记本电脑上的 docker 容器内本地制作原型然后将相同的计算无缝移动到服务器而不会出汗同时随身携带您喜欢的本地环境的许多东西您的别名、vim 插件、bash 脚本、自定义提示等。使用 Nvidia-Docker 快速实例化在 GPU 计算机上运行 Tensorflow、Pytorch 或其他深度学习库所需的所有依赖项如果您从头开始执行此操作这可能会很痛苦。有关更多信息请参阅下面的奖金部分。将模型发布为应用程序例如作为从 docker 容器提供预测的 rest api。当您的应用程序被 Docker 化时可以根据需要多次复制它。 十、延伸阅读         我们只是触及了 Docker 的表面您可以做的还有很多。我专注于Docker的领域我认为作为数据科学家你最常遇到的领域并希望给你足够的信心开始使用它。以下是一些在 Docker 之旅中帮助我的资源 编辑 8/24/2020以下是我最近在 Docker 上所做的一些更详细的笔记。有用的 Docker 命令更多有用的 Docker 命令Dockerfile 参考如何在 DockerHub 上创建并推送到存储库
http://www.dnsts.com.cn/news/16049.html

相关文章:

  • 网站结构 扁平结构 树状结构做煤层气的网站
  • 建设一个网站需要什么手续深圳建设工程交易
  • 单仁咨询建设网站个人网页可以做什么内容
  • 建设网站外国人可搜到广东建设厅网站首页
  • 旅游电子商务网站的建设包括哪些步骤?网站建设中有哪些常用技术?成都网站建设公司创新互联
  • 做网站作品是静态搜索网站的软件
  • asp 网站开发福建建设执业资格中心网站
  • 做网站的服务器带宽一般多少网站百度地图标记代码
  • 网站视频怎么做的好处哈尔滨seo优化培训
  • 有什么网站是可以做动态图的商贸网站建设
  • 外贸网站制作广州广告制作安装工
  • 雅安网站建设公司做网站的
  • 中国水土保持生态环境建设网站建公司网站
  • 专业的丹徒网站建设wordpress 如何调试
  • 东莞市建设规划局网站首页东莞虚拟主机
  • 做一份完整的网站规划书西安建设工程信息网平台变更
  • app网站开发定制婚礼网站有哪些
  • 怎么在试客网站做佣金单大疆网站建设
  • 网站建设公司生存淘宝官网免费开店入口
  • 网站dns设置wordpress the7 模板
  • 崇仁网站建设推广找网站公司做网站用了织梦可以吗
  • 盘锦网站开发公司中国平安网站建设
  • 织梦网站301跳转怎么做php制作网站
  • 深鑫辉网站建设html5页面模板大全
  • 南充市企业网站建设公司邮箱一般用哪种
  • 如何创建网站的步骤商城网站建设功能点价格
  • 东营高端网站建设wordpress淘宝联盟模板下载
  • 开商城网站多少钱网页素材提取
  • 爱站工具官网网站建设要达到什么水平
  • 做网站编辑的发展方向晋升网站建设的市场分析