参考资料:
Docker 官网:https://www.docker.com
Github Docker 源码:https://github.com/docker/docker-ce
官方文档超级详细:https://docs.docker.com/
Docker hub https://registry.hub.docker.com/
Docker 菜鸟教程 https://www.runoob.com/docker/docker-tutorial.html
概述
Docker基于Go开发的,开源项目;
具体的细节,可以去看的 百度百科;
虚拟机技术缺点:
- 资源占用多
- 冗余步骤多
- 启动很慢
Docker和虚拟机的不同:
- 传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在 宿主机的内核上,容器是没有自己的内核的,也没有虚拟硬件,所以轻便了
- 每个容器是相互隔离的,每个容器都有一个属于自己的文件系统,互不影响
Devops(开发、运维)
- 应用更快的交付和部署
Docker:打包镜像发布测试,一键运行 - 更便捷的升级和扩缩容
- 更简单的系统运维
有了Docker后,我们的开发、测试环境都是高度一致的 - 更高效的计算资源运用
Docker是内核级别的虚拟机,可以在一个物理机上运行很多的容器,服务器的性能可以被压榨到极致。
安装
环境:ubuntu 阿里云
参考:
官方文档写的很详细
或者
菜鸟教程
相关概念
Docker Registry
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签>
的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest
作为默认标签。
常见操作
拉取镜像
1、国内连接docker官网很慢修改docker中配置,添加对应中国docker加速器。(镜像加速)
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
2、运行以下命令(本处以hello-world为例),将image文件从仓库拉取到本地:
docker pull library/hello-world
其中拉取命令为 docker pull。hello-world为image为名称,library为hello-world镜像所在组。
执行完成后执行docker images
可以查询。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 4ab4c602aa5e 2 months ago 1.84kB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
3、运行拉取成功的image,docker run XXX
docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
hello-world运行完成后会自动关闭,类似mysql这样的服务类image运行后不会自动关闭。可以执行docker stop <imageName>停止。
查看image位置
1、docker镜像保存在 /var/lib/docker/ 目录下
/var/lib/docker# ls
builder buildkit containerd containers image network overlay2 plugins runtimes swarm tmp trust volumes
2、进入containerd目录可以查看相应image
/var/lib/docker/containers# ls
4dabf98c9d09234babaa8587e61c6e36e46788e68085df25813d91fdfcc0f990
3、在containers同级目录,有个叫image的文件夹,进入后
cd images/aufs
distribution imagedb layerdb repositories.json
在 repositories.json文件中记录了image的信息。
有些iamge文件夹下没有aufs目录,可能是这样的
/var/lib/docker/image# ls
overlay2
同样进入到overlay2文件夹下,可以看到aufs中相同的内容
/var/lib/docker/image/overlay2# ls
distribution imagedb layerdb repositories.json
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155669.html