Docker入门1(CICD 插曲)

网友投稿 780 2022-11-18

Docker入门1(CICD 插曲)

1、Docker核心概念

1.1 Docker设计目标(Docker思想来源于集装箱):

1)提供简单的应用程序打包工具(将应用打包,放在其他地方可以运行)

2)开发人员和运维人员职责逻辑分离;

现开发人员工作:

开发项目打包项目环境+代码 成镜像部署到容器平台

运维人员工作:怎么高效的去管理这些容器,比如:监控、日志、怎么开发出傻瓜工具方便自动化部署。

好处:

运维人员节省人工成本持续发布有问题更快解决,更好服务开发人员

3)(开发环境、测试环境、生产环境)多环境保持一致性

1.2 容器VS虚拟机:

容器之间的隔离是抽象隔离,是逻辑隔离,可以理解为电脑中进程之间的隔离;虚机之间的隔离是用操作系统进行了隔离。容器应该主要是解决应用层面的问题,虚拟机应该主要解决基础资源的问题。

1.3 Docker应用场景:

1)应用程序打包和发布

2)应用程序隔离

3)持续集成

4)部署微服务(将大的服务拆分成很多小的微服务,小的服务独立部署,独立数据库,升级时升级小服务就好,影响面小)

5)快速搭建测试环境(直接拉镜像,启动即可)

6)提供PaaS产品(平台即服务)

1.4 Docker安装:

分为企业版与社区版,这边安装社区版。

先看一下机器内核版本,再根据版本选择安装:

安装前最好先关防火墙(主要是关闭一些默认规则):

启动Docker:

# systemctl start docker

查看安装是否成功:

# docker info 查看信息

安装没问题后,设置一下开机自启动:

# systemctl enable docker

2、Docker镜像管理

2.1 镜像是什么

一个分层存储得文件,不是一个单一得文件一个软件得环境一个镜像可以创建N个容器一种标准得交付一个不包含Linux内核而又精简得Linux操作系统

可以理解为一个压缩包,包含了基础运行环境与源代码。

2.2 镜像从哪里来

因为是在线拉,且dockerhub地址在国外,所以可以根据需求先配置镜像加速器(实则就是配置一个国内得镜像仓库,而这个镜像仓库永远与dockerhub同步):

# vi /etc/docker/daemon.json                   (默认没有这个文件,直接VI创建写入)

保存后重启docker生效,如果docker因此有问题,肯定是文件内容写错了,英文下得标点符号。

2、可以本地/私有镜像仓库

2.3 镜像与容器的联系

容器是通过镜像创建的运行实例。一个镜像可以启用多个容器,多个容器之间是隔离的。

2.4 管理镜像常用命令

2.4 镜像存储核心技术:联合文件系统(UnionFS)

创建很多容器,却不怎么消耗磁盘空间,这是为什么?

创建一个容器,其实只是将基础镜像进行软链接(类似),所以只要容器中不加内容,即使基于一个镜像创建上百个容器,也不怎么影响磁盘空间。

比如右图中,基础镜像中file2修改,其实只是将file2复制到容器层,进行修改。

综上:

读文件:容器层->镜像层

修改文件:容器层->镜像层(从镜像层复制到容器层)

3、Docker容器管理

3.1 创建容器常用选项

# docker container exec -it 编号 bash

3.2 容器资源限制

默认创建的容器,使用宿主机所有资源,谁先抢到谁占用。

3.3 容器资源配额的扩容

docker update 更新容器配置

已创建的,修改配置,只支持部分修改。具体可以docker update --help

3.4 管理容器常用命令

3.4 容器实现核心技术:Namespace、CGroups

3.5 Docker核心组件之间关系

4、容器数据持久化

4.1 将数据从宿主机挂载到容器中的三种方式

根据2.4节所讲,容器删除,里面的数据就没有了。但是有时候容器中有些数据很重要,需要持久化(容器删除,数据还在)。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Tomcat 的 Connector 中NIO运行模式原理
下一篇:容器的主要应用场景有哪些?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~