【重要】Docker系列教程01-使用Docker本身
目录
前言
学习Docker,我们需要掌握它的三大核心概念:镜像
,容器
和仓库
。
今天先带大家学习Docker常规相关的基础知识。
Docker的简介
1,什么是补充?
如果读者之前是VM管理员,则可以把Docker理解为VM模板,如果您是一名研发人员,可以将其理解为类
(类)。
简单说,Docker可以是一个不包含系统内核
而又精简的操作系统。
例如:一个可能可以包含一个基本的ubuntu操作系统环境,里面仅安装了Nginx应用程序。可以把它称为Nginx。
2,普遍从哪里来的?
Docker Hub
是由Docker公司负责维护的公共注册中心,包含大量的容器副本,Docker工具默认
从这个公共副本库下载副本。
下载nginx官方
监督管理命令
我们先列出补充相关的命令
1,搜索平均值
docker搜索语法
例如,搜索mysql相关的镜像,命令如下:
2,下载总计
docker pull语法
通常情况下,描述一个必要需要包括“ 名称
+标签
”信息。
例如下载Ubuntu 18.04
系统的,命令如下:
若不指定标签,则默认会选择最新标签。测试如下:
在这里特别提示下,不要被
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)使用图像命令列出本地合并列表
解释列出的主轴信息:
-
REPOSITORY
说明性来自该仓库,例如ubuntu表示ubuntu系列的基础替代
-
TAG
上方的标签信息,人为标识包含的不同版本
-
IMAGE ID
相同的ID,使用唯一标识替代,如果两个附加ID相同,则表示指向相同的一个副本,只是标签名称不同而已
-
CREATED
公布最后更新的时间
-
SIZE
明显大小
2)使用检查命令查看详细详细信息
只展示部分
上图返回的是一个JSON格式,内容包括补充制作者,适应架构,各层的数字摘要等。如果只要其中一部分内容时,可使用
-f
指定,例如,获取重新创建时间:
3)使用history命令查看补充历史
搬运工人拉下载镜像时也我们发现了
镜像文件由多个层组成
,可以使用历史子命令列出各层的创建信息例如,查看Ubuntu的:18.04镜像的创建过程,命令如下:
注意:由于CREATED BY
部分命令过长,被自动截断了,可使用--no-trunc
选项输出完整命令。
4,为补充添加标签
码头工人标签语法
为ubuntu:latest镜像添加一个新标签:myubuntu:v1
5,删除总计
docker rmi语法
1)使用标签删除预算
[aaa@qq.com ~]# docker rmi myubuntu:v1
Untagged: myubuntu:v1
当同一个所有人拥有多个标签时,docker rmi命令只是删除该相应的一个标签副本,并不影响重叠文件。
2)使用ID删除补充
docker rmi 命令后跟镜像ID的前缀即可匹配删除
如果出现以下情况:
仔细观察,发现005d2078bdfa
这个目标id指向了两个存储库,因此无法删除。
此时我们可以依次删除该常规对应的标签即可删除,或者使用-f
参数强制删除,命令如下:
3)清除
使用Docker后端后,系统中可能会遗留一些临时附件文件,以及一些替换使用的替代,可以通过
docker image prune
命令进行清理。
docker image prune语法
例如,如下命令会自动清理临时的遗留残留文件层,最后会提示释放的存储空间:
[aaa@qq.com ~]# docker image prune -f
Total reclaimed space: 1.6 GB
6,存出和装载充足
1,存出充足
码头工人保存语法
例如,导出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 laod语法
例如,将ubuntu:18.04.tar
文件引入本地本地库,代码如下:
注意:使用
docker load
引入的补充将保留所有的补充历史记录和元数据信息。后续会我们会在容器章节中与docker load
做对比。
7,上传总量
使用docker push
命令将将全部上传到Docker Hub官方仓库(需要登录)。命令格式如下:
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
登录后,验证是否已上传:
本章命令小结
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