从事数据科学项目总是令人兴奋的。然而,其中也不乏挑战。每个项目都需要安装(可能是)一长串的库,以及每个库可能需要特定的版本。因此,要想弄清项目的依赖关系可能相当具有挑战性。这就是Docker可以提供帮助的地方。
Docker是一种流行的容器化技术。使用Docker可以将数据科学应用程序连同代码和所需的依赖关系打包成一个名为镜像的便携式工件。因此,Docker可以简化开发环境的复制,并使本地开发变得轻松。
以下是一些必备的Docker命令列表,这些命令将在你下一个项目的编码过程中非常有用。本文将使用Docker Hub上的镜像,这是一个最受欢迎的平台,用于查找、分享和管理容器镜像。
【Docker Hub】:https://hub.docker.com/
要从Docker Hub上拉取镜像,可以运行如下所示docker pull
命令:
docker pull <name-of-the-image>
例如,要从Docker Hub上拉取Python/ target=_blank class=infotextkey>Python镜像,可以运行以下命令:
docker pull python
默认情况下,此命令将拉取可用的最新版本的镜像。还可以选择添加标签以拉取特定版本的镜像。
注意:如果想以无超级用户权限的用户身份运行Docker命令,请创建docker组并将用户添加到该组。
要查看所有已下载的镜像列表,可以运行docker images
命令。
docker images
可以使用docker run
命令从已下载的镜像启动容器。在从注册表中拉取镜像后,就可以启动一个Docker容器,即镜像的运行实例,如下所示:
docker run <name-of-the-image>
docker run [options] <name-of-the-image>
例如,可以使用-i
选项在启动容器的同时启动交互式Python REPL,而-t
选项会指定一个伪tty
,如下所示:
镜像是一个便携式工件,而容器则是镜像的运行实例。这意味着可以通过单个Docker镜像运行多个容器。
可以运行docker ps
命令以获取所有正在运行的容器的列表。
docker ps
请注意,每个Docker容器都有一个与之关联的CONTAINER ID
。在接下来的几分钟里,我们将学习Docker命令来停止和重启容器、检查日志等。在这些命令中将使用特定容器的CONTAINER ID
。
假设在之前的某个会话中运行了一个容器,而该容器已不再运行。在这种情况下,可以运行带有-a
选项的docker ps
命令。这会列出所有容器:当前正在运行的容器以及之前停止运行的容器。
docker ps -a
有时可能需要停止正在运行的容器。要停止容器,请运行docker stop
命令。
docker stop <CONTAINER ID>
可以使用docker start
命令来重新启动先前停止的容器。可以运行docker ps -a
命令,获取容器ID,然后在 docker start
命令中使用该ID来重新启动容器。
docker start <CONTAINER ID>
要删除特定的镜像,可以运行docker rmi
命令。
docker rmi <name-of-the-image>
运行此命令将从本地开发环境中删除该镜像。下次想要从该镜像启动容器时,将需要从DockerHub上拉取该镜像。
要永久从开发环境中删除容器,可以运行docker rm
命令。但是,在尝试删除容器之前,建议确保容器已停止运行。
docker rm <CONTAINER ID>
在调试容器时,docker logs
命令尤其有用。
docker logs <CONTAINER ID>
使用docker exec
命令,可以在正在运行的容器内执行命令。
docker exec <CONTAINER ID> <COMMAND> <ARGS>
自行尝试:作为总结所学知识的快速练习,从Docker Hub上获取官方Bash映像。接下来,在启动容器时尝试启动一个交互式终端会话,并运行一个基本的Bash命令。
【官方Bash映像】:https://hub.docker.com/_/bash
要检查工作环境中安装的Docker版本,请运行docker version
命令:
docker version
docker info
命令提供了有关Docker系统范围安装的更详细信息。
docker info
希望这篇关于必备Docker命令的教程对你有所帮助。一旦熟悉了Docker,可以尝试将Python和数据科学应用程序进行Docker化。然后可以将应用程序的镜像推送到Docker Hub。其他开发人员将能够通过单个命令拉取你的镜像并在他们的工作环境中启动容器。