《Docker技术入门与实战》读书笔记

初识Docker

核心概念与安装

镜像

docker pull

docker pull拉取镜像时,不指定Tag,则会选择latest,即下载最新镜像。而latest表示镜像不稳定,生产环境不建议使用;也就是说,一般都是指定某个版本Tag。

镜像文件一般由若干层(layer)组成,6c953ac5d795这样的串是层的唯一id(实际上完整的id包括256比特,64个十六进制字符组成)。

在不同的镜像仓库服务器的情况下,可能会出现镜像重名的情况。故而,严格地讲,镜像的仓库名称中还应该添加仓库地址(即registry,注册服务器)作为前缀,一般而言可以忽略。

docker pull选项包括:
-a, --all-tags=true|false:是否获取仓库中的所有镜像,默认为否
--disable-content-trust:取消镜像的内容校验,默认为真

查看镜像信息

镜像大小信息只是表示该镜像的逻辑体积大小,实际上由于相同的镜像层本地只会存储一份,物理上占用的存储空间会小于各镜像逻辑体积之和。

docker ls命令选项:

docker tag命令添加的标签实际上起到了类似链接的作用。

docker inspect有个-f选项可以用于仅查询感兴趣的部分内容:docker inspect -f {{.author}} <image>:<tag>

docker history命令可用于列出各层的创建信息。

docker search

docker search选项包括:
-f, --filter filter:过滤输出内容,如-f=is-official=true-f=stars=4
--format string:格式化输出内容
--limit int:限制输出结果个数,默认为25个
--no-trunc:不截断输出结果

删除和清理镜像

创建镜像

存出和载入镜像

上传镜像

容器

当利用docker run来创建并启动容器时,Docker在后台运行的标准操作包括:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建一个容器,并启动该容器
  • 分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从网桥的地址池配置一个IP地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被自动终止

仓库

注册服务器,Registry,是存放仓库,Repository,的具体服务器,一个注册服务器上可以有多个仓库,而每个仓库下面可以有多个镜像。仓库可简单理解为一个具体的项目或目录。

自动创建,Automated Builds,是Docker Hub提供的自动化服务,这一功能可以自动跟随项目代码的变更而重新构建镜像。

要配置自动创建,包括如下的步骤:

  1. 创建并登录Docker Hub,以及目标网站如Github
  2. 在目标网站中允许Docker Hub访问服务
  3. 在Docker Hub中配置一个 自动创建 类型的项目
  4. 选取一个目标网站中的项目(需要含Dockerfile)和分支
  5. 指定Dockerfile的位置,并提交创建

国内云服务商提供的第三方镜像市场。

搭建本地私有仓库

使用官方registry镜像搭建,默认情况下,仓库会被创建在容器的/var/lib/registry目录下,通过-v参数来将镜像文件存放在本地的指定路径。

关闭安全性校验:DOCKER_OPTS="--insecure-registry ip:port"

数据管理

容器中的管理数据主要有两种方式:

  • 数据卷(Data Volumes):容器内数据直接映射到本地主机环境
  • 数据卷容器(Data Volume Containers):使用特定容器维护数据卷

数据卷

Data Volumes,是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount行为。

提供的特性:

  • 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效与方便
  • 数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作
  • 对数据卷的更新不会影响镜像,解耦开应用和数据
  • 卷会一直存在,直到没有容器使用,可以安全地卸载它

在创建容器时将主机本地的任意路径挂载到容器内作为数据卷,绑定数据卷。

执行docker [container] run时,可使用-mount选项来使用数据卷,支持三种类型的数据卷:

  • volume:普通数据卷,映射到主机/var/lib/docker/volumes路径下
  • bind:绑定数据卷,映射到主机指定路径下
  • tmpfs:临时数据卷,只存在于内存中。

网络基础配置

Dockerfile

操作系统

创建支持 SSH 服务的镜像

web服务器与应用

数据库应用

编程语言

使用私有仓库

构建Docker 容器集群

公有云使用Docker

Docker 实践之道

核心技术

安全

高级网络配置

Docker相关项目

附录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

johnny233

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值