数据科学家Docker入门指南

简介: Docker容器那么强大?可以应用道数据科学领域?看来学习一下!

 Docker容器是通过虚拟化开发和部署应用程序的一种越来越流行的方式,它对数据科学家有用吗?当然,本指南就会向你介绍它的作用,并手把手教你快速入门。

816618bf36aeabc647b81ec5795cd952662fcc62

介绍

Docker是一种越来越流行的,使在容器中开发、部署和运行应用程序变得更容易的工具。因为它们允许开发人员将应用程序与它所需的所有部分(如库和其他依赖项)打包,并将其作为一个包打包,这样就可以帮助开发人员更简单的使用。你肯定会有这样的疑问:这是软件工程师常用的工具,但是数据科学家如何使用这个强大的工具呢?鉴于你有类似的疑问,我们就先来讨论一下想在数据科学中使用Docker的一些原因。

为什么选择Docker?

1、再现性

Docker对于数据科学家或者是软件工程师最大的吸引力就是它的可再现性。除了能够共享Docker镜像本身之外,理论上还可以通过共享python脚本与他人共享Docker内部的数据。简单来说,你的同时可以运行这个脚本来查看Docker镜像中的内容。

2、时间成本

Docker不必安装单独的软件包,因为它们都被包含在Docker镜像本身中,所以很节省时间。此外,Docker容器的启动时间约为50ms,比运行传统的虚拟机快得多。

3、灵活性

它是一个非常灵活的工具,因为在Docker库中可以快速创建并运行任何Docker映像的软件。

4、自带测试环境

Docker在将软件环境托管到活动服务器之前对其进行测试是非常有用,可以将Docker容器配置为与服务器环境相同,这可以让测试变得更简单。

5、分布式

数据科学家可以花费一些时间准备他们的机器来适应一个特定的框架。例如,Docker提供了30多种独特的方法供用户设置Caffe环境,Docker提供了一个一致的平台来共享这些工具,减少了搜索操作系统特定安装程序和库所花的时间。

6、可访问性

Docker生态系统—Docker composeDocker machine —可以让任何人轻松的访问它。这意味着一些不熟悉代码的公司成员仍然可以运行它。甚至你可以向销售团队成员,或更高的管理人员展示你正在构建的新数据科学应用程序!

开始

我们已经介绍了使用Docker的好处,那么我们就可以开始学习Docker。首先,转到Docker站点安装软件版本。为了确保正确安装,打开命令行并输入docker版本。应该显示如下:

3c8435b50c092d93c6e69cf82b02542141bc026e

花费一些时间,现在我们已经安装了Docker,接下来研究一个相对直接的,常见的例子,执行下面的代码:

f462a0c0bba7047658332c7950725b638991928f

对于Docker的新手来说,直接上手来进行实战这有点望而却步,为了方便大家理解,将这个例子分解一下:

docker run这个命令的作用是查找镜像(在本例中是jupyter notebook),加载一个容器,然后在该容器中运行一个命令。

-p 8000:8000' p '关键字代表端口,因此命令的这一部分是打开主机和容器之间的端口,格式为 -p<主机端口><容器端口>

jupyter/notebook要加载的镜像,对于Jupyter notebook,你可以在Docker官方库中浏览上千种最流行的软件工具。运行该命令并导航到http://localhost:8000/之后,会看到以下内容:

698759d01df3331264bf70ea90e6ec8d74ab20c3

这个过程应该很简单,当你想要下载Python运行库和Jupyter包时,通过Docker运行它是非常有效的。现在已经开始运行了,接下来开始在主机和容器之间共享Jupyter notebook。首先,我们需要在主机上创建一个目录来存储notebook,我们将其命名为/jupyter-notebook。在运行Docker命令时共享目录操作和端口的工作方式相似,我们需要添加以下内容:

e1c8223a7fc6006dbcee7a06f9cd8a79ff03168a

因此,现在对<主机端口><容器端口>进行映射:(例如主机上的~/jupyter-notebook,容器上的/home/joyvan)。来自Jupyter Docker文档的容器目录将作为这类映像的指定工作目录。结合这一点和我们之前运行的内容,完整的命令应该是这样的:

5548a1d40d25f49441848ac38f80f8264ab46c92

现在简单地加载本地主机服务器,创建一个新的notebook,并将它重命名为“Example Notebook”。最后,检查本地主机~/jupyter-notebook目录,可以看到:Example Notebook.ipynb

0bbb7df23b10f8316575eeb845610458725a6125

Dockerfile

Dockerfile是一个文本文档,其中包含可以用来自动创建Docker映像的命令,这是保存Docker命令并通过Docker build /path/to/dockerfile命令连续执行它们的有效方法。上面提到的Jupyter notebook示例的Dockerfile如下所示:

b2603b8aa6c0a15c698693c8db2b68d0916c2b4d

现在对每个部分进行讲解:

FROM Ubuntu : latest

这指的是对于新映像,Docker应该以什么为基础,在本例中是ubuntuLatest简单调用最新的版本。如果要测试旧版本,需要输入版本号。

RUN apt-get update && apt-get install -y python3 \ python3-pip

这一行确保系统是最新的,然后安装python3pip3

RUN pip3 install jupyter

然后安装Jupyter

WORKDIR /home/jupyter

COPY  /src/jupyter ./

Docker映像容器上设置工作目录,然后从本地主机复制需要的文件。

EXPOSE 8000

-p以前的工作方式类似,将端口8000暴露给了主机。

ENTRYPOINT ["jupyter", "notebook", "--ip=*"]

开始 Jupyter notebook

Dockerfile非常有用,因为它允许你团队内的其他团队成员轻松地运行Docker容器。

结论

 

就像你看到的那样,我们成功地为Docker提供了一个工作用例,并且运行得非常快。我们仅仅触及了你所能做的表面,但是Docker真的算是一个神奇的库,它存在无限的可能性。成为Docker的专家不仅可以帮助你进行本地开发,而且可以在与数据科学家团队合作时节省大量的时间、金钱和精力。


以上为译文。

本文由阿里云云栖社区组织翻译。

文章原标题《data-scientist-guide-getting-started-docker》,

作者:Dan Clark 译者:乌拉乌拉,审校:。

文章为简译,更为详细的内容,请查看原文

相关文章
|
2月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
137 2
|
3月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
98 5
|
1月前
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
111 5
docker入门-快速学会docker
|
3月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
2月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
2月前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
2月前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
96 2
|
2月前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
67 3
|
2月前
|
Kubernetes Linux Docker
容器化技术Docker入门与实践
容器化技术Docker入门与实践
68 0
|
3月前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
144 2

热门文章

最新文章