关于Docker的一些不得不知道的事

Docker:轻量级容器技术解析
Docker作为基于LXC的开源容器引擎,实现了轻量级虚拟化,简化了应用分发、部署流程。从2010年dotCloud公司的创立到2017年Moby项目的命名,Docker经历了快速发展。其核心概念包括镜像、仓库和容器,镜像是由多层文件系统构成,仓库用于存储镜像,容器则是镜像的运行实例。

Docker是基于LXC(Linux容器虚拟技术,Linux Container)的开源的应用容器引擎,属于轻量级的虚拟化技术。
传统的虚拟化方式是在硬件层面实现虚拟化,需要在操作系统上虚拟化独立的操作系统层,并在虚拟化处理的操作系统层上运行应用,不仅要管理虚拟化的操作系统还需要管理应用。而Docker虚拟化技术是操作系统层面上的虚拟化,直接复用本地主机操作系统,并在虚拟化的操作系统上运行应用,不需要额外管理操作系统,只需要关注应用本身就可以了。在Docker中有三个核心概念,镜像(Image),仓库(Container),容器(Container)。Docker通过在仓库中获取镜像,然后实例化镜像生成容器,整个过程就像一个大师(Docker)去博物馆(仓库)看到了一个杯子的照片(镜像),回家后大师(Docker)根据博物馆(仓库)的照片(镜像)仿制了很多杯子(容器),非常好理解。


Docker发展历程

2010年,dotCloud公司在美国旧金山成立,为Docker的出现提供了垫定了基础。
       随后,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为Docker。
       2013年3月,Docker项目开源,Docker 0.1版本发布。
       2014年6月9日,Docker 1.0版本正式发布。
       2017 年于 Austin 举办的 DockerCon 上正式命名为 Moby 项目,GitHub 上的 docker/docker 库也被转移到了 moby/moby。

核心概念


镜像 Image
        镜像可以看所是一个通过UnionFS与AUFS文件联合实现的多层文件系统。通常来说我们常说的镜像包含一个底层操作系统镜像层和一到多个应用镜像层。底层镜像层负责提供用户,文件系统,网络等操作系统层级功能,应用镜像层提供应用环境如tomcat,nginx等应用运行环境以及应用服务。每个镜像层之间通过指针的形式进行叠加,共同构成服务运行的基础环境。
     
仓库
       仓库是镜像的存储空间,Docker公司提供公共的镜像仓库(Docker称之为Repository),Github connect,自动构建镜像,大大简化了应用分发、部署、升级流程。用户也可以创建自己的本地仓库,存储各种自定义的镜像文件。
容器
       容器是镜像的实例化,可以看作一个简易版的操作系统环境包含root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序,可以执行包含启动,停止,删除等。每个容器间是相互隔离的。容器中会运行特定的运用,包含特定应用的代码及所需的依赖文件。

总结
       Docker是一个轻量级的虚拟化技术,缺乏对容器有效的编排、管理、调度功能。在将Docker应用于具体业务实现时,一般会采用基于容器的集群管理平台K8s对Docker以及Docker容器统一管理。

### 如何解决 Docker 容器无法删除的问题 #### 使用 `grep` 查找并处理挂起的容器 当遇到难以删除的状态为 dead 的容器时,可以先通过查找挂载信息来定位相关进程。具体操作如下: ```bash grep docker /proc/*/mountinfo | grep xxxx ``` 这一步骤有助于识别可能阻止容器被移除的具体原因[^1]。 #### 正确终止并清理僵尸容器 对于那些即使已经处于死状态也无法直接删除的容器,在尝试其他措施之前应该确保其关联的所有子进程已经被彻底结束。可以通过以下命令实现这一点: ```bash kill 进程ID号 ``` 之后再试一次删除命令通常就能成功。 #### 添加用户至 Docker 用户组以获得适当权限 如果是因为权限不够而导致的操作失败,则需确认当前操作者属于正确的用户组。如果不是 root 用户的话,建议创建专门用于运行 Docker 的用户组并将目标账户加入其中: ```bash groupadd docker usermod -aG docker $USER newgrp docker ``` 完成上述设置后记得注销重登使更改生效[^2]。 #### 授予必要的文件访问权能 某些情形下,由于缺少足够的读写许可也会造成类似困扰。此时可赋予特定路径下的资源更多开放度以便顺利完成任务: ```bash chmod +x 文件或目录名 ``` 此指令能够增加执行属性从而绕过潜在障碍。 #### 谨慎运用强制关闭功能 尽管存在紧急状况迫使不得不立即中断某个实例的工作流程,但还是推荐尽可能采用较为温和的方式——即发送 SIGTERM 信号请求优雅停机;仅当常规手段均告失效之时才诉诸于更为激进的做法如调用 `docker rm -f` 来实施即时销毁动作[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值