其他分享
首页 > 其他分享> > docker容器基础入门

docker容器基础入门

作者:互联网

传统服务部署方式

手动部署-->脚本部署 (单服务机)

新型自动化部署

自动化部署(批量)

1.容器

容器:装东西的器皿

特点:

2.传统虚拟化和容器的区别

虚拟化分类:

容器分开的资源:

//查看内核
[root@node0 ~]# uname -r
4.18.0-193.el8.x86_64

3.linux容器技术

Linux容器其实并不是什么新概念。最早的容器技术可以追遡到1982年Unix系列操作系统上的chroot工具(直到今天,主流的Unix、Linux操作系统仍然支持和带有该工具)。

4.Linux Namespaces

命名空间(Namespaces)是Linux内核针对实现容器虚拟化而引入的一个强大特性。

namespaces 系统调用参数 隔离内容 内核版本
UTS CLONE_NEWUTS 主机名和域名 2.6.19
IPC CLONE_NEWIPC 信号量、消息队列和共享内存 2.6.19
PID CLONE_NEWPID 进程编号 2.6.24
Network CLONE_NEWNET 网络设备、网络栈、端口等 2.6.29
Mount CLONE_NEWNS 挂载点(文件系统) 2.4.19
User CLONE_NEWUSER 用户和用户组 3.8

5.CGroups(控制组)

对共享资源进行隔离,限制,审计。

CGroups限制资源有:

控制组的功能有:

安装docker后,通过修改该目录文件来限制docker应用资源

[root@localhost ~]# ls /sys/fs/cgroup/memory/

6.LXC(LinuXContainer)

LXC(LinuX Container)把容器技术做得更加易用,把需要用到的容器功能做成一组工具,从而极大的简化用户使用容器技术的麻烦程度。

由于需要学习LXC一系列的命令工具,且批量数据迁移困难隔离性差,普及难度也很大

docker的出现则是优化版LXC

7.docker基本概念

容器技术的前端工具,docker将其简化并普及

从操作系统功能上看,docker底层依赖的核心技术主要包括Linux操作系统的命名空间、控制组、联合文件系统和Linux虚拟网络支持。

自docker 0.9版本起,docker除了继续支持LXC外,还开始引入自家的libcontainer,试图打造更通用的底层容器虚拟化库。如今的docker基本上都已经是使用libcontainer而非LXC了。

项目封装镜像上传网络仓库-->下载本地-->基于镜像启动容器

7.1docker工作方式

docker采取在一个容器内只运行一个进程,比如我们要在一台主机上安装一个nginx和一个tomcat,那么nginx就运行在nginx的容器中,tomcat运行在tomcat的容器中,二者用容器间的通信逻辑来进行通信。

docker的特点

++在容器中有数据称作有状态,没有数据称作无状态。在容器的使用中,我们应以有状态为耻,以无状态为荣。数据不应该放在容器中,而应放置于外部存储中,通过挂载到容器中从而进行数据的存储。++

8.docker容器编排

为解决项目依赖关系安装顺序的问题,在docker基础上能将应用程序之间的依赖关系、从属关系、隶属关系等等反映在启动、关闭时的次序和管理逻辑中,这种功能被称为容器编排

常见容器编排工具

标签:容器,入门,虚拟化,CLONE,LXC,Linux,docker
来源: https://www.cnblogs.com/fangxinxin/p/14446424.html