ToB企服应用市场:ToB评测及商务社交产业平台

标题: Docker 常用命令底子详解(一) [打印本页]

作者: 络腮胡菲菲    时间: 2025-2-15 14:19
标题: Docker 常用命令底子详解(一)
一、Docker 初相识

在当今数字化时代,软件开发和部署的服从与机动性成为了关键因素。Docker,作为一款开源的应用容器引擎,犹如一颗璀璨的明星,照亮了软件开发与部署的道路,为开发者们带来了亘古未有的便利。它就像是一个神奇的 “集装箱”,可以将应用步调及其所有的依赖项打包在一起,形成一个独立的、可移植的运行情况。无论你是在开发、测试还是生产情况中,Docker 都能确保你的应用步调稳固运行,就像在一个 “密封舱” 里一样,不受外界情况的干扰。
(一)Docker 的独特优势

(二)Docker 的广泛应用场景

(三)把握 Docker 命令的重要性

要充实发挥 Docker 的强大功能,把握其常用命令是至关重要的。这些命令就像是开启 Docker 宝藏的钥匙,让你可以大概轻松地管理容器、构建镜像、举行网络配置等操作。无论是创建和启动容器,还是管理镜像和堆栈,每一个命令都有其独特的用途和魅力。接下来,让我们一起深入探索 Docker 的常用命令,开启这段精彩的技术之旅吧!
二、Docker 底子命令

2.1 查看版本信息

在使用 Docker 时,了解其版本信息是很有必要的,这有助于我们确定所使用的功能是否可用,以及排查一些与版本干系的问题。查看 Docker 版本信息的命令非常简单,只需在终端中输入:
  1. [/code] docker version
  2. 执行该命令后,你会看到雷同如下的输出:
  3. [code]
复制代码
Client:
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:45:04 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server:
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:43:49 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.3
GitCommit: v1.0.3-0-gf46b6ba
docker-init:
Version: 0.19.0
GitCommit: de40ad0
从输出中可以看到,它分别展示了客户端(Client)和服务端(Server)的版本信息,包罗版本号、API 版本、Go 版本、Git 提交信息、构建时间、操作系统和架构等。这就像是我们购买了一款软件,查看版本信息可以让我们了解这个软件的 “生产日期” 和 “配置参数”,以便更好地使用它。
2.2 获取资助文档

当我们对某个 Docker 命令不太熟悉,或者想了解某个命令的具体用法和参数时,Docker 提供的资助文档就像是一位贴心的 “小助手”,随时为我们答疑解惑。获取 Docker 整体资助文档的命令如下:
  1. [/code] docker --help
  2. 执行该命令后,你会看到一个非常详细的资助页面,它列出了 Docker 的所有命令以及一些通用选项。比方,你可以看到管理命令(Management Commands),如 builder、config、container 等,以及平凡命令(Commands),如 attach、build、commit 等。每个命令后面都有简短的描述,让你对其功能有一个初步的了解。这就好比你拿到了一本厚厚的使用阐明书,虽然内容许多,但它能资助你全面了解这个工具的各种功能。
  3. 假如你想获取某个具体命令的资助文档,比如docker run命令,只需在命令后面加上--help,如下所示:
  4. [code]
复制代码
docker run --help
这样,你就会得到关于docker run命令的详细资助信息,包罗该命令的用法、各种选项及其含义。比方,--name选项用于为容器指定一个名称,-d选项用于在后台运行容器并返回容器 ID 等。通过查看这些详细的资助信息,我们可以更准确地使用命令,避免因为参数错误而导致的问题。
2.3 了解系统状态

要全面了解 Docker 系统的运行状态,我们可以使用docker info命令。这个命令就像是一个 “系统探测器”,它会收集并展示 Docker 系统的各种详细信息,包罗镜像数量、容器数量、存储驱动、网络配置等。在终端中输入以下命令:
  1. [/code] docker info
  2. 执行后,你会看到雷同如下的输出:
  3. [code]
复制代码
Containers: 3
Running: 1
Paused: 0
Stopped: 2
Images: 5
Server Version: 20.10.12
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc version: v1.0.3-0-gf46b6ba
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.0-10-amd64
Operating System: Debian GNU/Linux 11 (bullseye)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.855GiB
Name: your-hostname
ID: XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
从输出中,我们可以清楚地看到当前系统中容器的运行状态,如正在运行的容器数量、暂停的容器数量和停止的容器数量。同时,还能了解到镜像的数量、存储驱动的范例、网络插件的信息等。这些信息对于我们监控和管理 Docker 系统非常重要,就像大夫通过各种检查数据来了解病人的身体状态一样,我们可以根据这些信息来优化和调整 Docker 系统的配置,确保其稳固高效地运行。
三、镜像操作命令

3.1 列出当地镜像

在使用 Docker 的过程中,我们常常需要查看当地已经下载或构建的镜像,这时就可以使用docker images命令。这个命令就像是一个 “镜像堆栈管理员”,它会将当地镜像的信息清楚地展示出来。其根本语法如下:
  1. [/code] docker images [OPTIONS] [REPOSITORY[:TAG]]
  2. 其中,OPTIONS是一些可选参数,REPOSITORY表示镜像堆栈名称,TAG表示镜像标签。假如不指定REPOSITORY和TAG,则会列出所有当地镜像。常见的参数有:
  3. [list]
  4. [*]-a:列出当地所有的镜像,包罗中心映像层。默认情况下,会过滤掉中心映像层,只展示最终的镜像。就好比一个堆栈里有许多货品,默认只展示摆放在表面的成品,而-a参数可以让我们看到堆栈里所有的货品,包罗半成品。
  5. [/list]
  6. [list]
  7. [*]--digests:显示镜像的摘要信息,这对于确保镜像的完整性和一致性非常重要。就像我们购买商品时,查看商品的防伪标识,确保买到的是正品。
  8. [/list]
  9. [list]
  10. [*]-f:根据指定条件过滤效果。比方,docker images -f "dangling=true"可以列出所有虚悬镜像(堆栈名和标签都是<none>的镜像)。这就像是在堆栈里筛选出特定范例的货品,方便我们管理和清理。
  11. [/list]
  12. [list]
  13. [*]--format:指定返回值的模板文件,通过 Go 语言模板文件来定制展示的格式,让输出更符合我们的需求。
  14. [/list]
  15. [list]
  16. [*]--no-trunc:显示完整的镜像信息,不会截断输出。偶然候镜像的一些信息可能比较长,默认会截断显示,使用这个参数就可以看到完整的内容。
  17. [/list]
  18. [list]
  19. [*]-q:只显示镜像 ID,简洁明了,适合在需要快速获取镜像 ID 的场景中使用。
  20. [/list] 执行docker images命令后,会看到一个雷同如下的表格:
  21. [code]
复制代码
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 8609f97d428d 2 weeks ago 133MB
ubuntu 20.04 94e19c99c257 3 weeks ago 72.8MB
hello-world latest c54a2cc56cbb 5 months ago 1.84kB
表格中的各列含义如下:





3.2 搜索镜像

当我们需要在 Docker Hub 中查找特定的镜像时,docker search命令就派上用场了。它就像是一个 “镜像搜索引擎”,资助我们在海量的镜像中找到符合需求的那一个。其根本语法为:
  1. [/code] docker search [OPTIONS] TERM
  2. 其中,OPTIONS是可选参数,TERM是搜索的关键词,比如镜像名称或干系描述。常见的参数有:
  3. [list]
  4. [*]--automated:只列出自动构建的镜像,这些镜像通常是由一些自动化工具或流程创建的,质量和稳固性可能更有保障。
  5. [/list]
  6. [list]
  7. [*]--filter, -f:根据指定条件过滤效果。比方,docker search -f "stars=30" nginx可以筛选出点赞数(STARS)大于等于 30 的 nginx 镜像。这就像是在搜索引擎中设置筛选条件,快速找到符合要求的信息。
  8. [/list]
  9. [list]
  10. [*]--limit:限定搜索效果的最大条数,默认是 25 条。假如我们只需要查看前几个最干系的镜像,可以使用这个参数来控制输出数量。
  11. [/list]
  12. [list]
  13. [*]--no-trunc:不截断输出,显示完整的镜像描述和其他信息,让我们能更全面地了解镜像的详细情况。
  14. [/list]
  15. [list]
  16. [*]--stars, -s:只展示点赞数(STARS)不低于该数值的效果,通过点赞数可以大抵了解镜像的受欢迎程度和质量。
  17. [/list] 比方,我们要搜索 nginx 镜像,可以执行以下命令:
  18. [code]
复制代码
docker search nginx
执行后,会看到一个雷同如下的表格:
  1. [/code] NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  2. nginx Official build of Nginx. 16640 [OK]
  3. jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1715 [OK]
  4. richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 815 [OK]
  5. 表格中的各列含义如下:
  6. [list]
  7. [*]NAME:镜像的名称,包罗堆栈名和镜像名,方便我们识别和拉取。
  8. [/list]
  9. [list]
  10. [*]DESCRIPTION:镜像的描述信息,简单先容了镜像的用途和特点,资助我们判断是否符合需求。
  11. [/list]
  12. [list]
  13. [*]STARS:镜像的点赞数,反映了该镜像在社区中的受欢迎程度,点赞数越高,通常表示该镜像质量和实用性较好。
  14. [/list]
  15. [list]
  16. [*]OFFICIAL:表示是否为官方镜像,官方镜像由软件的官方项目组创建和维护,质量和安全性更有保障。
  17. [/list]
  18. [list]
  19. [*]AUTOMATED:表示是否是自动构建的镜像,自动构建的镜像一般是通过特定的脚本或工具自动天生的,构建过程更加尺度化和高效。
  20. [/list] [size=3]3.3 拉取镜像[/size]
  21. 从长途堆栈获取镜像到当地,我们使用docker pull命令,它就像是一个 “镜像搬运工”,将我们需要的镜像从长途堆栈搬运到当地。其根本语法为:
  22. [code]
复制代码
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
其中,OPTIONS是可选参数,NAME是镜像的名称,TAG是镜像的标签,用于指定版本,DIGEST是镜像的摘要,用于唯一标识一个镜像版本。假如不指定TAG,默认会拉取latest版本。常见的参数有:


比方,要拉取最新版本的 nginx 镜像,可以执行:
  1. [/code] docker pull nginx
  2. 假如要拉取特定版本,比如 1.19 版本的 nginx 镜像,则执行:
  3. [code]
复制代码
docker pull nginx:1.19
当我们执行拉取命令时,Docker 会首先检查当地是否已经存在该镜像,假如不存在,就会从长途堆栈下载。下载过程中,会显示下载的进度和干系信息,让我们清楚地了解下载的状态。
3.4 推送镜像

将当地镜像推送到长途堆栈,我们需要使用docker push命令,但在推送之前,必须先登录到长途堆栈,就像我们要把东西寄到某个地方,首先要获得这个地方的 “通行证”。登录长途堆栈的命令是docker login,执行后会提示输入用户名和密码。登录成功后,就可以使用docker push命令推送镜像了,其根本语法为:
  1. [/code] docker push [OPTIONS] NAME[:TAG]
  2. 其中,OPTIONS是可选参数,NAME是镜像的名称,TAG是镜像的标签。假如不指定TAG,默认会推送latest版本。常见的参数有:
  3. [list]
  4. [*]--disable-content-trust:忽略镜像的校验,在推送镜像时,也可以选择忽略校验,不过这可能会带来肯定的安全风险,所以在正式情况中要谨慎使用。
  5. [/list] 比方,我们要将当地的一个名为myapp:v1.0的镜像推送到 Docker Hub 上,首先登录:
  6. [code]
复制代码
docker login
输入用户名和密码登录成功后,执行推送死令:
  1. [/code] docker push myapp:v1.0
  2. 推送过程中,会显示推送的进度和干系信息。假如推送成功,我们就可以在长途堆栈中看到这个镜像了,这样其他人也可以从长途堆栈拉取这个镜像来使用。
  3. [size=3]3.5 删除镜像[/size]
  4. 当我们不再需要某个当地镜像时,可以使用docker rmi命令将其删除,它就像是一个 “镜像清理工”,资助我们释放磁盘空间,保持当地镜像堆栈的整洁。其根本语法为:
  5. [code]
复制代码
docker rmi [OPTIONS] IMAGE [IMAGE...]
其中,OPTIONS是可选参数,IMAGE是要删除的镜像,可以是镜像 ID、镜像名或镜像名:标签的形式。常见的参数有:


比方,要删除名为myapp:v1.0的镜像,可以执行:
  1. [/code] docker rmi myapp:v1.0
  2. 假如要删除所有镜像,可以使用以下命令:
  3. [code]
复制代码
docker rmi -f $(docker images -qa)
这里的$(docker images -qa)会列出所有当地镜像的 ID,然后-f参数强制删除这些镜像。在执行删除所有镜像的命令时要特别小心,确保确实不再需要这些镜像,以免误删重要的镜像。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4