docker命令及原理
docker命令
查看容器日志
#查看容器日志
docker logs 4756507b8903
-t 是加入时间戳
-f 跟随最新的日志打印
-n --tail都是打印最后几行的意思
查看容器内运行的进程
docker top imageid
查看容器内部细节
#后期学习数据卷时会有用
docker inspect imageid
重新进入容器
docker attach和docker exec区别就是docker exec可以在不进入容器的情况下执行相关的命令,记住ctrl+p+q退出容器才不会关闭容器,exit一样会退出容器。
将容器中的文件拷贝到宿主机
docker cp 容器中文件全路径 宿主机文件全路径
docker原理
我们之前都知道镜像我们可以理解简易版的linux系统,但是上图我们发现centos容器size才两百兆,tomcat我们平时下载才几兆,现在的 tomcat容器size都已经600兆了,这是因为镜像其实是一层一层的首先它会下载centos(精简版只会下载需要的)然后jdk然后才是tomcat。我们一次为切入点详细了解docker的原理。
LXC+UnionFS
docker主要是利用LXC(Linux Container)和Union File System(具体叫AUFS)组合实现它的容器虚拟化。LXC负责资源管理,UnionFileSystem负责镜像管理。
LXC
Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。它能有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。
Union File System
早起的docker采用的是AUFS,AUFS属于UnionFS。
(AUFS 一开始叫 Another UnionFS,后来又叫 Alternative UnionFS,最后直接改为 Advance UnionFS。它是对 Linux 原生 UnionFS(Union File System) 的重写和改进。但是无论怎么改,它就是进不了 Linux 的主线。但是,我们可以在 Ubuntu 和 Debian 这些发行版上使用它。)
目前最新docker采用的是overlay2,也属于UnionFS。
总结
LXC和UnionFS方方面面都涉及到Linux底层的原理。今年linux也是学习的重点,现在不是时候,走的太偏会影响后面的学习,再次记住相应知识点,后面会看这块。