Docker学习总结

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Docker学习总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

参考资料:

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开发的,开源项目;
具体的细节,可以去看的 百度百科

虚拟机技术缺点:

  1. 资源占用多
  2. 冗余步骤多
  3. 启动很慢

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

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!