docker学习

Docker体系结构

containerd:是一个简单的守护进程,使用runc管理容器

Shim:只负责管理一个容器

runC:是一个轻量级的工具,只能用来运行容器

内部组件

namespaces:

命名空间,linux内核提供的一种资源隔离的机制,如进程,网络,挂载点等资源

CGroup:

控制组,linux内核提供的一种限制进程资源的机制,例如cpu,内存等资源

unionFS

联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型。

虚拟机与容器的区别

 

infrastructure:计算机硬件

Hypervisor:虚拟机与操作系统的中间,承上启下,可以配置多个cpu,作为资源调度

vm:虚拟机是文件系统和库文件

container:容器,共享宿主机的系统

启动时间

docker秒启动,kvm分钟级启动

轻量级

容器是M为单位,占用资源小,部署更快速,虚拟机以G为单位,

性能

容器共享宿主机内核,性能接近无机器

开销大,性能低

安全性

知识进程隔离,稳定性不如虚拟机

应用场景

场景一:节省项目环境部署时间

场景二:环境一致性,可移植性

场景三:持续集成

场景四:微服务

场景五:弹性伸缩

小结:

安装

第二章镜像管理

镜像

daemon.json:docker跨平台的配置文件

镜像与容器联系

overlay2:存储驱动

ubuntu:默认aufs;

deviceapper早期版本,性能差;

overlay2:现在一般用overlay2,docker自主研发,性能最好,支持文件系统恶心他,sfs

镜像管理命令

容器管理

创建一个容器:bs

查看当前进程的容器:

docker container ls

查看当前容器的详情信息:

docker container inspect 3d9fe986d8fd

 

将Docker主机数据挂载到容器

 

 

volumes

volume指令:

docker volume --help

创建卷

docker volume create nginx-vol

打开卷:

docker volume inspect nginx-vol

-v形式不建议使用

数据共享,多个服务器可以共用一个数据卷,

如果不指定数据卷的话,会默认创建一个数据卷,并随机生成一个命名卷和匿名卷

通过卷创建容器:

docker run -d -it --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx

dst:挂载点

src:数据卷

进入容器命令:

docker exec -it nginx-test bash

查看:默认页

在数据卷添加数据:

另一边也可以看得到

删除我所有创建的容器:

docker rm -f $(docker ps -q -a)

容器删除后数据卷还在,现在引入数据命令:并暴露端口号,用于测试

docker run -d -it --name=nginx-test -p 88:80 --mount src=nginx-vo1,dst=/usr/share/nginx/html nginx

 

Bind Mounts

搭建LNMP网站平台

第六章Dockerfile

dockerfile指令:

构建java网站环境镜像

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员雪球

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

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

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

打赏作者

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

抵扣说明:

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

余额充值