Docker 入门指南

在深入探讨Docker之前,先通过一个流程图来简单了解Docker的工作原理。安装Docker后,只需执行docker run命令,Docker会在本地查找指定的镜像,如果已安装,则运行该镜像;如果没有,则从Docker Hub(将在下一篇文章中介绍)搜索并下载镜像,然后在本地创建容器并启动程序。这听起来是否像软件安装?逻辑上是的,但从技术角度来看并非如此。阅读本文后,将得到答案。

真的需要Docker吗?

在深入了解Docker之前,让先看看目前使用的非Docker传统系统,并理解为什么要转向Docker。在这张图中,可以看到传统的网页浏览方式。想象一下,如果有数百万用户同时访问同一个服务器,服务器会变得越来越慢。为了解决这个问题,来看传统的策略。这种策略的问题在于,如果服务器或硬件因任何原因关闭,用户将面临困难。为了解决这个问题,出现了多种解决方案,其中最好的解决方案之一就是Docker。

从虚拟机转向Docker的原因是,虚拟机完全运行在一个完整的操作系统上,这需要高内存需求。如果使用Docker容器而不是虚拟机,可以享受到以下优势:

  • 轻量级
  • 隔离性
  • 快速部署
  • 可重用性

什么是Docker

Docker是一个开源平台,用于构建、部署和管理容器化应用程序。这个生态系统围绕创建和运行容器。Docker是一个作为容器运行时的软件。例如,这个生态系统包含:

  • Docker客户端
  • Docker服务器
  • Docker机器
  • Docker镜像
  • Docker Hub
  • Docker Compose

容器简化了分布式应用程序的交付,并随着组织转向云原生开发和混合多云环境而越来越受欢迎。简单来说,Docker使得安装和运行软件变得非常容易,无需担心设置或依赖关系。

简单的架构

在这里,客户端与服务器通信(docker ps)。如果客户端需要特定的镜像,它会向服务器请求该镜像(docker pull),服务器将在注册表中找到镜像并将其返回给客户端(注册表包含由各种开发者上传的镜像)。

容器是什么?

在正常系统中的实际问题、解决方案以及容器的工作原理。安装Docker的步骤如下:

  • Windows:
  • Ubuntu:
  • Mac:

Docker镜像层、创建镜像和共享

在这里,可以看到IMAGE ID,它被认为是创建的镜像的最新ID。Docker始终将最新层更新到镜像。确切地说,就是取一个镜像(层)进行修改,最终将得到修改后的镜像(最顶层)。对于每次修改,Docker都会为其层分配不同的ID,因此镜像最终会获得最新的层ID。

最后添加的层应该在顶部。复制AB镜像并创建C镜像。在AB层的顶部添加C镜像层。现在C镜像位于AB层的顶部。可以通过使用Docker diff命令来查看层的修改。C表示更改,A表示添加。

注意:这是一个很大的缺点,因为在进行修改时,所有以前的不需要的层也会在层后面。为了解决这个问题,可以使用Dockerfile。在介绍Dockerfile之前,将使用此方法创建镜像。

通过保存文件共享镜像

现在,可以通过保存和重定向文件与朋友共享镜像。或者,可以使用以下命令保存镜像:

docker save -o myimage.tar myimage:tag

保存文件后,可以将文件与朋友分享。一旦朋友收到文件,他可以使用以下命令加载文件:

docker load -i myimage.tar

在hub.docker.com创建账户。在hub.docker.com创建仓库—可以推送创建的Docker镜像。应该使用之前创建的相同仓库名称。创建仓库后,将获得上传命令:

docker push lmcshub/myhttpd:v1

需要使用docker login命令登录Docker账户。系统会要求输入用户名和密码。登录成功后,使用:

docker push lmcshub/myhttpd:v1
  • Docker镜像和容器。
  • Docker之前使用的传统策略及其缺点。
  • 从Docker Hub推送和拉取镜像。
  • Docker架构和分层原则。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485