打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Docker的基础命令
userphoto

2022.11.02 江苏

关注

大家好,欢迎收看思路实验室出品的Python入门教程,我是室长。

在上一期我们初步了解了Docker的强大功能,得益于Docker Desktop,我们可以快速地实现某些常用容器的部署。但说到底使用Docker还是需要和命令行打交道的,光靠图形界面拯救没有前途。那么这一期我们就来了解一下docker的基本操作命令。

首先我们回顾一下上一期所说的Docker的基本使用方式,即拉取镜像,构建容器和打包镜像。这三种操作各有其命令,分别为pull、run和commit。

pull命令

这个命令我们在上一期已经使用过它来下载python镜像了:

但是是不是有哪里不对?我们没有说下载哪个版本的python,所以这个命令默认给我们下载了最新版本的python。实际上,我们可以在镜像名后边加上一个冒号,后边写上标签名(tag),这样就可以指定需要下载的镜像版本。比如想要下载python3.7,就可以编写这样的命令:



从Docker Desktop可以看到python3.7版本的镜像已经下载成功了:

此外pull命令有几个参数,可以根据需要进行填写:

参数

作用

-a

下载此镜像的所有版本

--disable-content-trust

下载镜像后不进行校验

--platform=

选择适用于指定平台的镜像(等号后填平台名)

需要注意参数前的横杠是一道还是两道。一个字母前的只有一道横杠,为缩写参数,多个字母前的为两道横杠,为全拼参数。

在pull命令中,参数应位于pull和容器名之间。比如想要下载python的全部版本,可以编写这样的命令:



run命令

run命令虽然看起来只是运行容器的命令,但实际上隐含了很多操作。所以run命令非常重要,相关的参数也非常多。我们现在先看一些比较常用也比较重要的命令运行方法。

run命令最基本的构成就是镜像名。比如我们需要运行一个以python3.7为基础的容器,就可以编写这样的命令:



如果在此之前你没有使用pull命令拉取镜像,你就会发现执行了run命令后也会自动拉取镜像。所以如果没有特殊的要求我们其实可以直接使用run命令实现拉取镜像和构建运行容器一条龙操作。

接下来就是设置参数

在上一期的Docker Desktop运行容器的截图中我们可以看到一些常用的参数设置。首先是容器名称,容器名称的参数名为--name,参数名与参数值以空格间隔。比如我们想将容器命名为Python3.7,就可以编写这样的命令:



从Docker Desktop可以看到一个名为Python3.7的容器已经建立的,所使用的镜像为python:3.7

接下来是端口映射。通常一个镜像中的服务端口都是固定的,比如Redis的端口就是6379。可一旦我用了10个Redis,端口都一样,那就乱套了。所以我们需要对其进行映射,把不同Redis的端口映射到Docker的不同端口上,就可以通过访问Docker的指定端口来访问指定的Redis容器:

实际上我们必须通过docker的端口来访问容器,所以需要对端口映射进行设置。

设置端口映射有两种参数,一种是-P,这个参数会将容器中开放的端口随机映射到docker从49000到49900的某个端口。这种方法就是配置时比较省事,但是突出一个乱字。而另一种是-p,这个参数需要我们指定docker的端口和容器的端口。比如我们要把redis的6379端口映射到docker的6380端口,可以这样编写命令:



一定要记住冒号左边的是docker的端口,冒号右边的是容器的端口。

接下来是挂载卷。很多容器会留下运行数据,比如数据库的数据,或者爬虫爬取的信息。目前的容器都是封闭的,我们不太方便进入容器获取这些数据。而且如果容器出了什么问题,或者安装时有配置错误的情况,想要重新安装一下,这些数据就都会被删除,除非我们进行挂载卷的设置。挂载卷相当于给容器开了一个口子,把容器与外部系统进行了连通,和端口映射有一定的相似性。

设置挂载卷使用的是-v参数。比如我们想把系统中路径为D:\python的文件夹挂载到python容器中的/home/python目录,就可以这样编写命令:



这样我们就可以从外部系统访问这个目录中的内容,并且重装容器不会影响里边的内容。在很多容器的安装教程中提到的数据持久化指的就是设置挂载卷。

最后一个是环境变量。环境变量是对容器参数的设置,具体要设置什么,取决于容器的要求。每一个环境变量参数都以-e开始,空格后按照“参数名=参数值”的格式进行设置。

端口映射、挂载卷和环境变量都未必只有一条,每一条开始时都应标注参数名,不能合并同类项。

除此之外,run命令还有很多参数,当我们用到时再行讲解。

commit命令

使用Docker免不了翻来覆去地重新安装,或者从一台电脑上转移到另一台电脑上。每次都从默认的镜像开始安装并配置实在麻烦,我们可以使用commit命令将我们配置好的容器重新打包成镜像。commit命令关键的内容是容器名、镜像名和这个打包版本的版本号。比如我们想要给一个安装好了指定模块的Python3.7容器进行打包,版本号为custom-v1,可以编写这样的命令:



当然,如果想要更细化一下这个镜像的信息,可以添加两个参数,分别是作者名-a 和描述-m。需要注意的是这两个参数后接的值都需要用双引号包起来,就像这样:



从Docker Desktop中可以看到,这个镜像已经打包成功了:

等需要安装时直接指定此版本的镜像进行安装即可。

这一期我们初步了解了Docker运行的基本命令。接下来我们将会以实际的容器安装为例进行进一步讲解。如果这篇文章对你有所帮助,希望能帮室长点个赞和在看,你的鼓励是室长进步的动力

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Docker
Linux虚拟化Docker之自定义JAVA基础环境的Docker并发布
听说docker命令你还记不住
从零开始学习 Docker
60、Docker 学习笔记(CentOS 7.1)
Docker系列~配置外部访问容器中的Redis服务(十)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服