Docker学习从零开始到精通二(跟随狂神 Docker 课程学习)
1、前言
狂神的 Docker 课程:https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0
2、Docker 可视化
2.1、portainer(先学习这个)
-
docker pull portainer/portainer:(拉取,你可以先搜索或者是去仓库查看,选择自己需要的版本)
-
docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer:(启动portainer容器)
-
localhost:9000:(Ubuntu 浏览器访问)
-
若出现failure unable to create to administrator user使用下面的命令
-
docker run --name portainer --env ADMIN_USERNAME=admin --env ADMIN_PASS=admin123456 -d -p 18050:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer(首先,你需要把之前的那个portainer容器停止并删除,然后在重新使用这条命令进行创建容器和启动:停止容器:docker stop 容器 id,删除容器:docker rm -f 容器 id)
3、Docker 镜像层讲解
镜像是一种轻量级、可执行的独立软件,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件 所需要的所有内容。将你的应用和环境,直接打包成为 docker 镜像,别人就可以直接运行使用。
3.1、Docker 镜像加载运来
3.1.1、unionFs:(联合文件系统)
介绍:
我们下载的时候看到一层一层的下载就是这个。unionFs(联合文件系统):union 文件系统是一种分层
、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟机文件系统下。union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于镜像(没有父镜像),可以制作各种具体的应用镜像。
特点:
一次可以同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,也就是被封装成一个镜像,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。
3.1.2、Docker 镜像加载原理
docker 的镜像实际上由一层一层文件系统组成,这种层级的文件系统叫做 unionFs。
boots(boot file system)主要包含 BootLoader 和 kernel,BootLoader 主要啊是引导加载 kernel,Linux 刚启动时会加 bootfs 文件系统,在 Docker 镜像的最底层是 boots。这一层与我们典型的 Linux/Uinx 系统是一样的,也包含 boot 加载器和内核。当 boot 加载完成后整个内核就都在内存中,此时内存的使用权已经由 bootfs 转交给内核,此时系统也会把 bootfs 卸载掉。