欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【重要】Docker系列教程01-使用Docker本身

程序员文章站 2024-01-27 11:51:40
...

目录

前言

Docker的简介

1,什么是补充?

2,普遍从哪里来的?

监督管理命令

1,搜索平均值

2,下载总计

3,查看概况

4,为补充添加标签

5,删除总计

6,存出和装载充足

7,上传总量

本章命令小结


前言

学习Docker,我们需要掌握它的三大核心概念:镜像容器仓库

今天先带大家学习Docker常规相关的基础知识。

Docker的简介

1,什么是补充?

如果读者之前是VM管理员,则可以把Docker理解为VM模板,如果您是一名研发人员,可以将其理解为(类)。

简单说,Docker可以是一个不包含系统内核而又精简的操作系统。

例如:一个可能可以包含一个基本的ubuntu操作系统环境,里面仅安装了Nginx应用程序。可以把它称为Nginx。

2,普遍从哪里来的?

Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器副本,Docker工具默认从这个公共副本库下载副本。

【重要】Docker系列教程01-使用Docker本身下载nginx官方

监督管理命令

我们先列出补充相关的命令

【重要】Docker系列教程01-使用Docker本身

1,搜索平均值

【重要】Docker系列教程01-使用Docker本身

docker搜索语法

例如,搜索mysql相关的镜像,命令如下:

【重要】Docker系列教程01-使用Docker本身

2,下载总计

【重要】Docker系列教程01-使用Docker本身

docker pull语法

通常情况下,描述一个必要需要包括“ 名称标签”信息。

例如下载Ubuntu 18.04系统的,命令如下:

【重要】Docker系列教程01-使用Docker本身

若不指定标签,则默认会选择最新标签。测试如下:

【重要】Docker系列教程01-使用Docker本身

在这里特别提示下,不要被latest的字面意思是“最新的”所误解了,它只是这个资源库的拥有者约定这样,没有附加作用,更不会自动更新。举个例子,我可以轻易把一个过时的通用打上latest标签,实验如下:

# docker images web_repo
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
web_repo              1.0                 2e9f372f03a0        44 seconds ago      2.433 MB
web_repo              latest              2e9f372f03a0        44 seconds ago      2.433 MB
web_repo              0.9                 4986bf8c1536        2 weeks ago         2.433 MB
# docker tag -f web_repo:0.9 web_repo:latest
# docker images web_repo
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
web_repo              1.0                 2e9f372f03a0        About a minute ago   2.433 MB
web_repo              0.9                 4986bf8c1536        2 weeks ago          2.433 MB
web_repo              latest              4986bf8c1536        2 weeks ago          2.43

这里带最新标签的合并与0.9版本的合并是一样的,都是两周前的版本,而1.0的合并是一分钟以前的。此时带有最新标签的替代还是最新版本吗?

3,查看概况

1)使用图像命令列出本地合并列表

【重要】Docker系列教程01-使用Docker本身

解释列出的主轴信息:

  • REPOSITORY

说明性来自该仓库,例如ubuntu表示ubuntu系列的基础替代

  • TAG

    上方的标签信息,人为标识包含的不同版本

  • IMAGE ID

相同的ID,使用唯一标识替代,如果两个附加ID相同,则表示指向相同的一个副本,只是标签名称不同而已

  • CREATED

    公布最后更新的时间

  • SIZE

    明显大小

2)使用检查命令查看详细详细信息

【重要】Docker系列教程01-使用Docker本身

只展示部分

上图返回的是一个JSON格式,内容包括补充制作者,适应架构,各层的数字摘要等。如果只要其中一部分内容时,可使用-f指定,例如,获取重新创建时间:

【重要】Docker系列教程01-使用Docker本身

3)使用history命令查看补充历史

搬运工人拉下载镜像时也我们发现了镜像文件由多个层组成,可以使用历史子命令列出各层的创建信息例如,查看Ubuntu的:18.04镜像的创建过程,命令如下:

【重要】Docker系列教程01-使用Docker本身

注意:由于CREATED BY部分命令过长,被自动截断了,可使用--no-trunc选项输出完整命令。

4,为补充添加标签

【重要】Docker系列教程01-使用Docker本身

码头工人标签语法

为ubuntu:latest镜像添加一个新标签:myubuntu:v1

【重要】Docker系列教程01-使用Docker本身

5,删除总计

【重要】Docker系列教程01-使用Docker本身

docker rmi语法

1)使用标签删除预算

[aaa@qq.com ~]# docker rmi myubuntu:v1
Untagged: myubuntu:v1

当同一个所有人拥有多个标签时,docker rmi命令只是删除该相应的一个标签副本,并不影响重叠文件。

2)使用ID删除补充

 docker rmi 命令后跟镜像ID的前缀即可匹配删除

【重要】Docker系列教程01-使用Docker本身

如果出现以下情况:【重要】Docker系列教程01-使用Docker本身

仔细观察,发现005d2078bdfa这个目标id指向了两个存储库,因此无法删除。

此时我们可以依次删除该常规对应的标签即可删除,或者使用-f参数强制删除,命令如下:

【重要】Docker系列教程01-使用Docker本身

3)清除

使用Docker后端后,系统中可能会遗留一些临时附件文件,以及一些替换使用的替代,可以通过docker image prune命令进行清理。

【重要】Docker系列教程01-使用Docker本身

docker image prune语法

例如,如下命令会自动清理临时的遗留残留文件层,最后会提示释放的存储空间:

[aaa@qq.com ~]# docker image prune -f
Total reclaimed space: 1.6 GB

6,存出和装载充足

1,存出充足

【重要】Docker系列教程01-使用Docker本身

码头工人保存语法

例如,导出ubuntu:18.04镜像为本地文件ubuntu:18.04.tar,代码如下:

[aaa@qq.com ~]# docker save -o /data/ubuntu:18.04.tar ubuntu:18.04
[aaa@qq.com ~]# ls /data
ubuntu:18.04.tar

- o参数:表示已导出到指定的文件中。

2,载入中

可使用docker load将导出的tar文件再次引入到本地合并库。语法格式如下:

【重要】Docker系列教程01-使用Docker本身

docker laod语法

例如,将ubuntu:18.04.tar文件引入本地本地库,代码如下:

【重要】Docker系列教程01-使用Docker本身

注意:使用docker load引入的补充将保留所有的补充历史记录和元数据信息。后续会我们会在容器章节中与docker load做对比。

7,上传总量

使用docker push命令将将全部上传到Docker Hub官方仓库(需要登录)。命令格式如下:

【重要】Docker系列教程01-使用Docker本身

docker push语法

例如,将本地的myubuntu:v1补充上传至官方仓库。代码如下:

1、为 待上传的镜像打上标签
[aaa@qq.com ~]# docker tag ubuntu:18.04 qinlulu/myubuntu:v1

2、登录到Docker Hub(没有账号的需在官网注册)
[aaa@qq.com ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: qinlulu
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

3、上传镜像
[aaa@qq.com ~]# docker push qinlulu/myubuntu:v1
The push refers to repository [docker.io/qinlulu/myubuntu]
28ba7458d04b: Pushed
838a37a24627: Pushed
a6ebef4a95c3: Pushed
b7f7d2967507: Pushed
v1: digest: sha256:b58746c8a89938b8c9f5b77de3b8cf1fe78210c696ab03a1442e235eea65d84f size: 1152

Docker Hub官网地址:

https://hub.docker.com

登录后,验证是否已上传:

【重要】Docker系列教程01-使用Docker本身

本章命令小结

1,搜索平均值

docker search mysql

2,下载总计

docker pull ubuntu:18.04

3,列出本地清单

docker images

4,查看有关详细信息

docker inspect ubuntu:18.04

5,查看常规历史信息

docker history ubuntu:18.04

6,为补充添加标签

docker tag ubuntu:latest myubuntu:v1

7,删除总计

docker rmi myubuntu:v1

8,清除临时补充文件

docker image prune -f

9,存出充足

docker save -o ubuntu.tar ubuntu:18.04

10,加载总量

docker load -i ubuntu.tar

11,上传总量

docker push qinlulu/myubuntu:v1