泉缘泉 发表于 2022-8-9 14:42:37

初识Docker

目录

[*]一、Docker 概述

[*]1、Docker的概念
[*]2、容器的优点
[*]3、容器与虚拟机的区别
[*]4、容器在内核中支持2种重要技术

[*]4.1、namespace资源隔离——用容器技术封装

[*]5、Docker核心概念

[*]1)镜像
[*]2)容器
[*]3)仓库


[*]二、Docker的安装

[*]1、docker的安装步骤
[*]2、实例操作:安装docker

[*]2.1 关闭防火墙
[*]2.2 安装依赖包
[*]2.3 设置阿里云镜像源并安装 Docker-CE并设置为开机自动启动(使用在线源安装)
[*]2.4 查看 docker 版本信息


[*]三、Docker 镜像操作

[*]1、搜索镜像
[*]2、获取镜像
[*]3、镜像加速下载
[*]4、查看镜像信息

[*]4.1 查看下载的镜像文件信息
[*]4.2 查看下载到本地的所有镜像

[*]5、根据镜像的唯一标识 ID 号,获取镜像详细信息
[*]6、为本地的镜像添加新的标签
[*]7、删除镜像
[*]8、存出镜像:将镜像保存成为本地文件
[*]9、载入镜像:将镜像文件导入到镜像库中
[*]10、上传镜像

[*]四、Docker 容器操作

[*]1、容器创建:就是将镜像加载到容器的过程
[*]2、查看容器的运行状态
[*]3、启动容器
[*]4、创建并启动容器
[*]5、在后台持续运行 docker run 创建的容器
[*]6、终止容器运行
[*]7、容器的进入
[*]8 、从宿主机上将文件导入到容器中
[*]9、容器的导出与导入
[*]10、删除容器

[*]10.1 删除容器和强制删除容器
[*]10.2 批量停止和删除容器



一、Docker 概述

1、Docker的概念

• Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源
• Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”
• Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器
Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱
鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序
Docker的设计宗旨:Build,Ship and Run Any App,Anywhere,
即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统
2、容器的优点

容器化越来越受欢迎,因为容器是:

[*]灵活:即使是最复杂的应用也可以集装箱化。
[*]轻量级:容器利用并共享主机内核。
[*]可互换:可以即时部署更新和升级。
[*]便携式:可以在本地构建,部署到云,并在任何地方运行。
[*]可扩展:可以增加并自动分发容器副本。
[*]可堆叠:可以垂直和即时堆叠服务。
3、容器与虚拟机的区别

容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。
虚拟机运行的是一个完成的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。
特性Docker容器虚拟机启动速度秒级分钟级计算能力损耗几乎无损耗 50%左右性能接近原生弱于系统支持量(单机)上千个几十个隔离性资源隔离/限制完全隔离4、容器在内核中支持2种重要技术

docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)。
4.1、namespace资源隔离——用容器技术封装

mount文件系统,挂载点——>一个文件系统内,不能重复挂载一个指定目录user操作进程的用户和用户组pid进程编号uts主机名和主机域 (同一个环境里不能又叫node1又叫node2)ipc信号量、消息队列、共享内存(不同的应用调用内存资源的时候应该使用不同的内存空间)net(网络资源)网络设备、网络协议栈(在同一个网络名称空间中的网络规则)、端口等5、Docker核心概念

1)镜像

Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。
通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。
2)容器

Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。
可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。
3)仓库

Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。
Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker 目录下。
二、Docker的安装

1、docker的安装步骤

目前 Docker 只能支持 64 位系统。

systemctl stop firewalld.service
setenforce 0

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
--------------------------------------------------------------------------------------------
yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,
                它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------------------

#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce

systemctl start docker.service
systemctl enable docker.service

#查看 docker 版本信息
docker version 目前 Docker 只能支持 64 位系统。 2、实例操作:安装docker

2.1 关闭防火墙

https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621145156930-1158850317.png
2.2 安装依赖包

https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621145149081-321486729.png
2.3 设置阿里云镜像源并安装 Docker-CE并设置为开机自动启动(使用在线源安装)

https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621145723285-1052107141.png
https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621145745980-858909077.png
2.4 查看 docker 版本信息

https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621145804835-1173688819.png
三、Docker 镜像操作

1、搜索镜像

格式:docker search 关键字
docker search nginxhttps://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621150710206-168133555.png
2、获取镜像

格式:docker pull 仓库名称[:标签]
#如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。
docker pull nginxhttps://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621145900211-1428129454.png
 
3、镜像加速下载

浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1fam3t0i.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart dockerhttps://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621164303673-1747445983.png
 
9、容器的导出与导入

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。
cat /var/lib/docker/image/overlay2/repositories.jsonhttps://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621172351921-266244744.png
https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621172304123-540101131.png
10、删除容器

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae2feff98a0c 9 days ago 133MB
--------------------------------------------------------------------------------------------
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;
---------------------------------------------------------------------------------------10.1 删除容器和强制删除容器

https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621164659179-938524280.png
10.2 批量停止和删除容器

https://img2022.cnblogs.com/blog/2705490/202206/2705490-20220621170338570-637631204.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 初识Docker