Docker—Portainer可视化面板、镜像原理之联合文件系统
前言
什么是Portainer
它是Docker图形化界面管理工具!提供一个后台面板供我我们操作。
下载Portainer
docker run -d -p 8088:9000 \
> --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
测试
curl localhost:8088
第一次加载可能会比较慢
我们通过外网进行访问,服务器ip:8088
注意:要在阿里云的安全组中打开相应的端口
第一次登陆要设置密码
然后要设置数据,一般选择本地即可
镜像原理之联合文件系统
什么是镜像
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含某个软件所需的所有内容,包括代码、运行时的库文件、环境变量和配置文件
所有的应用直接打包docker镜像,直接运行!
如何得到镜像
- 从远程仓库下载
- 自制镜像 Docker file
Docker镜像加载原理
联合文件系统(UFS):是一种分层、轻量级并且高性能的文件系统**,支持对文件系统的修改作为一次提交来一层一层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。
从外面看,只能看到一个文件系统,联合加载会把各层文件叠加起来,这样最终的文件系统会包含所有底层的文件和目录
Docker的镜像实际就是由一层一层的文件系统组成,这种层级系统就是UFS
底层就是主机的内核,我们的容器只是将精简内核OS镜像叠加在内核上面,对于一个精简的OS,roofs可以很小。
commit 镜像
命令
docker commit 提交容器成为一个新的副本
docker commit -m=“提交的描述信息” -a=“作者” 容器id 目标镜像名字:[TAG]
我们发现我们默认下载的Tomcat的webapps里面是没有东西的,现在我们要添加一些文件,然后提交我们的镜像。
实战测试
启动我们的Tomcat镜像
docker run -it -p 9231:8080 tomcat
检查是否有容器存在
docker ps
确认启动之后,进入容器中
docker exec -it 容器id /bin/bash
将webapps.dist目录下的所有文件复制到webapps目录下
cp -r webapps.dist/* webapps
访问测试是否有页面
localhost:9231
提交我们自己的镜像
docker commit -a="作者" -m="信息" 容器id tomcat:版本号
查看是否提交成功
docker images
总结
如果你想要保存当前容器的状态,就可以通过commit来提交,获得一个镜像,就好比我们学习vm的时候的快照
当你学到这里之后,你已经入门Docker了