docker基础及安装
  TX0amY3y85Is 2023年11月02日 45 0

一、镜像(Image):

镜像是一个只读的模板或蓝图,包含着用于创建容器的操作系统、应用程序和所有依赖项。镜像是静态的,一旦创建,其内容不会发生变化,可以被多个容器同时使用。镜像可以通过Dockerfile定义创建过程,也可以从Docker Hub或私有仓库中获取已构建好的镜像。

docker 镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像—》run—》tomcat01 容器(提供服务器)通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中)

二、容器(Container):

容器是基于镜像创建的一个运行实例,可以被启动、停止、删除等操作。容器是动态的,它可以在运行时修改,可以在容器内安装应用程序、修改配置等。每个容器都是相对独立的、隔离的运行环境,与宿主机和其他容器隔离开来。简而言之,一个镜像可以创建多个容器。每个容器都使用相同的镜像作为基础,但容器本身可以具有不同的状态、配置和运行时环境。容器是基于镜像运行和维护的实体,它提供了一个隔离的执行环境,使得应用程序能够在其中独立运行。

当我们需要在Docker中运行应用程序时,通常会先选择或创建一个适合的镜像,然后使用该镜像创建一个或多个容器。容器允许我们在隔离的环境中运行应用程序,同时可以方便地管理和部署多个应用程序实例。镜像和容器的组合为我们提供了高度灵活和可移植的应用程序部署方案。

docker 利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的启动,停止,删除,基本命令目前就可以把这个容器理解为就是一个简易的 linux 系统。

三、仓库(repository):

仓库就是存放镜像的地方仓库为公有的窗口和私有的仓库Docker Hub

四、docker

Dockers运行容器的过程

docker pull:首先docker pull向docker daemon发送了一条命令pull,告诉docker daemon要拉取某一个镜像,docker daemon会在本机检查镜像是否存在,如果存在且版本就是我们想要拉取的版本,它就不会做任何的操作.如果不存在下一步它会到docker的仓库中找我们要拉取的镜像名字,如果找到了就会有docker仓库传送到我们的本地,把我们要的镜像传送到我们的本地来.

docker run:首先把命令发送到我们的docker daemon,docker daemon会先检查镜像在本机是否存在,如果不存在相当于执行了一个docker pull的过程,下载回来之后会以一定方式把镜像运行起来变成docker容器.

docker基础及安装_容器


五、docker 网络

1. docker容器在默认情况下,一般会分配一个独立的network-namespace,也就是网络类型中的Bridge模式.

在使用Bridge时就涉及到了一个问题,既然它有独立的namesapce,这就需要一种技术使容器内的端口可以在主机上访问到,这种技术就是端口映射,docker可以指定你想把容器内的某一个端口可以在容器所在主机上的某一个端口它俩之间做一个映射,当你在访问主机上的端口时,其实就是访问容器里面的端口.

2. 还有一种类型是Host模式,如果在启动容器的时候指定使用Host模式,那么这个容器将不会获得一个独立的network namespace,而是和主机共同使用一个,这个时候容器将不会虚拟出自己的网卡,配置出自己的ip.而是使用宿主机上的ip和端口.也就是说在docker上使用网络和在主机上使用网络是一样的.

3. 还有一种网络类型是None.也就是没有网络,这种情况docker将不会和外界的任何东西进行通讯.

六、docker 特性

1.文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。

2.资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。

3.网络隔离:每个进程容器运行在自己的网路空间,虚拟接口和IP地址。

4.日志记录:Docker将收集到和记录的每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或者批量检索

5.变更管理:容器文件系统的变更可以提交到新的镜像中,并可重复使用以创建更多的容器。无需使用模板或者手动配置。

6.交互式shell:Docker可以分配一个虚拟终端并且关联到任何容器的标准输出上,例如运行一个一次性交互shell。

七、docker 镜像构成

镜像加速原理

unionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。

docker基础及安装_容器_02

所有的Docker 镜像都起始于一个基础镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层。

举一个简单的例子,假如基于Ubuntu Linux 16.04创建一个新的镜像,这就是新镜像的第一层;如果在该镜像中添加Python包,就会在基础镜像层之上创建第二个镜像层;如果继续

添加一个安全补丁,就会创建第三个镜像层。

Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部这一层就是我们通常说的容器层,容器之下的都叫镜像层


八、安装docker

一 、docker  安装依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2  在安装Docker之前,安装一些必要的软件包和依赖项。

yum-utils:提供了一些用于管理yum存储库和包的实用程序。

device-mapper-persistent-data:为Docker提供了持久化设备映射。

lvm2:逻辑卷管理器,用于管理逻辑卷。

这些软件包和依赖项是为了确保Docker在CentOS 7上能够正常运行。安装它们是为了满足Docker的系统要求,并提供所需的功能和支持。

docker基础及安装_容器_03

二、设置镜像仓库为国内的阿里云仓库


sudo yum-config-manager --add-repo将指定的yum存储库添加到系统配置中。

具体来说,yum-config-manager是yum-utils软件包提供的一个工具,用于管理yum存储库的配置。--add-repo选项告诉该工具将一个新的存储库添加到配置中。

这个命令中所指定的存储库URL是http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo。该URL指向了Docker官方在阿里云上的CentOS存储库。当您执行这个命令后,系统就会将此存储库添加到yum的配置文件中。

添加存储库后,您就可以使用yum命令从该存储库中安装、更新和管理Docker软件包了。这使您能够更方便地获取最新的Docker版本和相关软件包,并确保与Docker官方提供的稳定和经过验证的软件保持同步

docker基础及安装_容器_04

三、sudo yum install -y docker-ce 安装docker

docker基础及安装_docker_05

四、启动docker

docker基础及安装_docker_06

五、镜像加速

为了加速 Docker 镜像的下载速度,可以配置 Docker 使用本地镜像加速器。以下是配置本地镜像加速的一般步骤:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors阿里云镜像网址、

docker基础及安装_docker_07

docker基础及安装_文件系统_08

六、重启配置文件

systemctl daemon-reload

Systemctl  restart docker

用于重新加载 Systemd 的配置文件,使最新的更改生效。当您修改了 Systemd 单元文件或其他相关配置文件时,需要运行此命令以通知 Systemd 更新并加载这些

docker基础及安装_docker_09

docker基础及安装_容器_10

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论