01 第一次学Docker
刚开始学,还只是一知半解,但是今天只学了这一点,容我水一点。其中肯定有不少错误或者不恰当的地方,求原谅。希望我以后能定期回顾自己的博客吧,hhh,估计有些难,但是给自己定下一个研究目标总是好的。
一、什么是Docker
搜索发现,docker是一个开源的应用容器引擎。
emm,对我现在来说,我还是不是很能理解。以我现在的目光来看,docker是一个集成了虚拟系统的包管理工具,能够不用搭建虚拟硬件平台来实现虚拟机,并且具有快捷搭建环境的功能。具体来说就是能大大减少搭建环境的麻烦。
docker和虚拟机的区别是虚拟机是在已有物理基础上构建一个虚拟化平台,不同虚拟机之间是互相隔离的,而docker利用原系统内核来构建一个虚拟平台。和虚拟机相比,docker更轻便但是虚拟化程度小于虚拟机。
图1. 传统虚拟化
图2. Docker虚拟架构
二、Docker三大组建
1. image(镜像)
这里的镜像就有些类似于我们装虚拟机的iso文件,内部包含着我们系统信息、软件环境等,镜像可以是从官方hub中提供的,也可以是由私人服务器上传提供的。
2. container(容器)
如果说镜像是iso文件,那么容器就像是利用这个文件构建出来的一台虚拟机,我们讲iso文件中所包含的系统文件复制到系统上构建新的系统。同理,我们根据镜像文件构建出相应的容器,就像是一个类构建一个实例。
3. registry
字面理解,就是放镜像文件的地方,同一个文件在仓库中往往对应着多个标签用来区别不同版本,具体作用还没学,等等再补充。
三、一些基本命令
最基本的方式
docker --help
1. 镜像操作
以拉取一个ubuntu镜像为例,上面提到对应着多个版本,所以我们需要指定标签。
从官方仓库中拉取操作:
docker pull ubuntu:20.04
# 一般格式:
docker pull registry:端口号/仓库:tag
查看镜像列表
docker image ls
附加那些搜索啥呀、展示全部啥的我就不一一例举,大部分软件都是一个套路
从镜像文件run一个容器
docker run -i -t ubuntu:20.04
其中-i能让这个容器标准输入保持打开,不然会出现这个容器打开又瞬间关闭的情况。
-t能让docker分配一个伪终端并绑定到容器的标准输入上,实测没有这个参数就不会出现linux命令行前面那种 用户名@计算机名的格式
还有一个-d我暂时没用到,没认真学
删除image-->直接docker rm id就行,id只要前几位能区别开就行,和其他软件大差不差,就不赘述
2. 容器操作
运行容器
docker start -it id
退出就直接exit就行
查看容器-->一样还是ls,不过要将image换成container,还有一般要加-a
如果容器已经运行,但是没有进入
docker exec -it id bash
这里能够做到进入bash环境,切exit只会退出bash,不会stop容器
那么关闭容器和删除容器就不用说了吧
好了,该说的都说了,由于我还用不到太高深的东西目前就不打算继续深入了,等做项目的时候继续研究。祝大家及自己——明确目标😱。。。。。。。