> 文章列表 > Docker容器---介绍、安装

Docker容器---介绍、安装

Docker容器---介绍、安装

Docker基本管理

    • 一、Docker概述
      • 1、IT架构
      • 2、什么是docker
      • 3、Docker特点
      • 4、Docker与KVM区别
    • 二、Docker核心概念
    • 三、Docker使用场景
      • 1、Docker在内核中支持的2种重要技术
      • 2、应用场景
    • 四、Docker安装
      • 1、YUM安装docker
      • 2、设置阿里云镜像源
      • 3、查看docker版本信息
    • 五、docker镜像命令管理
      • 1、搜索镜像
      • 2、镜像加速下载
      • 3、查看本地本地镜像
      • 4、查看镜像的详细信息
      • 5、给本地镜像添加新的标签
      • 6、删除镜像
      • 7、批量删除镜像
      • 8、存储镜像
      • 9、载入镜像

一、Docker概述

1、IT架构

云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务、Serverless(无服务),无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题。

  • Bare Metal(裸金属):运行物理机,也称为裸金属

  • Virual machines(虚拟机):可以在一台物理机上创建多个虚拟机,并把物理配置分发成多个虚拟配置

    缺点:性能损耗大,大约损耗50%

    虚拟机常用软件:VMware workstation(windows、vm Sphere+ESXI (Windows server)、KVM(linux内核))

  • Containers(容器):容器内部自身有一个小型操作系统
    常用软件:docker、podman、rocket、container

  • functions函数(函数化、代码化)

2、什么是docker

(1)Docker 是一个开源的应用容器引擎基于go 语言开发并遵循了apache2.0 协议开源

(2)Docker 是在Linux 容器里运行应用的开源工具,是一种轻量级的“虚拟机”

(3)Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的,可移植的,自给自足的容器。

Docker 的Logo设计为蓝色鲸鱼,拖着许多集装箱,鲸鱼可以看作为宿主机,集装箱可以理解为相互隔离的容器,每个集装箱中都包含自己的应用程序

3、Docker特点

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

(1)灵活:即使是最复杂的应用也可以集装箱化。

(2)轻量级:容器利用并共享主机内核。

(3)可互换:可以即时部署更新和升级。

(4)便携式:可以在本地构建,部署到云,并在任何地方运行。

(5)可扩展:可以增加并白动分发容器副本。

(6)可堆叠:可以垂直和即时堆叠服务。

容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。

4、Docker与KVM区别

(1)隔离共享

虚拟机通过添加Hypervisor层(虚拟化中间层),虚拟出网卡、内存、CPU等虚拟硬件,再在其上建立虚拟机,每个虚拟机都有自己的系统内核。而Docker容器则是通过隔离(namesapce)的方式,将文件系统、进程、设备、网络等资源进行隔离,再对权限、CPU资源等进行控制(cgroup),最终让容器之间互不影响,容器无法影响宿主机。

(2)性能与损耗

与虚拟机相比,容器资源损耗要少。
同样的宿主机下,能够建立容器的数量要比虚拟机多。
虚拟机的安全性要比容器稍好,要从虚拟机攻破到宿主机或其他虚拟机,需要先攻破 Hypervisor层,这是极其困难的,而docker容器与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机产生影响。
在这里插入图片描述

二、Docker核心概念

1、镜像 容器 仓库

镜像:包含了各种环境或者服务(tomcat redis nginx)的一个模板。运行容器的基础,包含运行应
用程序所需的所有内容。

容器:是镜像运行起来之后的一个实例,可以把容器看做是一个简易版的linux环境容器就是集装箱
从镜像创建的叫做运行实例。

仓库:存放镜像的场所,最大的公开库是docker。私有仓库harboor。

2、虚拟架构有哪些

寄据架构

本机(真实操作系统)–> 虚拟化产品–> 虚拟化操作系统或软件

原生架构

裸金属之上 服务器 --> 虚拟化产品
虚拟化产品 vmware kvm/openstack linux虚拟环境 私有云环境

三、Docker使用场景

1、Docker在内核中支持的2种重要技术

docker 本质就是宿主机的一个进程,docker 通过namespace 实现资源隔离,通过==cgroups ==实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘。比如分配500G,并不是实际占用物理磁盘500g,而是随着使用扩展)。

2、应用场景

打包应用部署简单、适合做微服务部署、适合持续集成和持续交付、提高开发效率、快速部署。

四、Docker安装

1、YUM安装docker

[root@localhost ~]#setenforce 0
[root@localhost ~]#systemctl disable --now firewalld
[root@localhost yum.repos.d]#yum install -y yum-utils device-mapper-persistent-data lvm2

在这里插入图片描述
在这里插入图片描述

2、设置阿里云镜像源

[root@localhost yum.repos.d]#yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost yum.repos.d]#yum install -y docker-ce docker-ce-cli containerd.io#安装docker
[root@localhost yum.repos.d]#systemctl start docker.service   #启动并设置开机自启
[root@localhost yum.repos.d]#systemctl enable docker.service 

在这里插入图片描述

3、查看docker版本信息

[root@localhost yum.repos.d]#docker version 
[root@localhost yum.repos.d]#docker info

在这里插入图片描述
在这里插入图片描述

五、docker镜像命令管理

1、搜索镜像

    搜索镜像
格式:docker search 关键字
获取镜像(下载)
格式:docker pull 仓库名称[:标签]

在这里插入图片描述

2、镜像加速下载

浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置[root@localhost ~]#vim /etc/docker/daemon.json
添加自己的加速器地址,如下图
[root@localhost ~]#systemctl daemon-reload     #重新加载配置
[root@localhost ~]#systemctl restart docker    #重启服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、查看本地本地镜像

[root@localhost ~]#docker images
------------------------------------------------------------------------------------
#注释:REPOSITORY:镜像属于的仓库;TAG:镜像的标签信息,标记同一个仓库中的不同镜像;IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;CREATED:镜像创建时间;VIRTUAL SIZE:镜像大小;------------------------------------------------------------------------------------#镜像下载后存放在 /var/lib/docker #查看下载的镜像文件信息cat /var/lib/docker/image/overlay2/repositories.json

在这里插入图片描述
在这里插入图片描述

4、查看镜像的详细信息

格式:docker inspect 镜像ID号/容器ID     #根据镜像的唯一标识 ID 号,获取镜像详细信息
[root@localhost ~]#docker inspect 605c77e624dd

在这里插入图片描述

5、给本地镜像添加新的标签

添加镜像后,镜像的ID并不会改变

 格式:docker tag 名称:[标签] [仓库名/]名称:[新标签]例:docker tag nginx:latest nginx:web       #为nginx镜像添加web标签docker tag nginx:latest 仓库名/nginx:web   #为镜像添加库标识,方便上传到官方仓库,因为上传镜像时必须指定仓库docker images | grep nginx

在这里插入图片描述
在这里插入图片描述

6、删除镜像

注:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像

  格式:
docker rmi 镜像名:标签      #删除指定标签
docker rmi 镜像ID -f       #删除指定镜像docker rmi nginx:web          #删除nginx镜像的web标签docker rmi ac826143758d       #删除镜像,该镜像只有单个标签的情况下docker rmi 55f4b40fe486 -f    #删除镜像,镜像有多个标签时需要加-f

在这里插入图片描述
在这里插入图片描述

7、批量删除镜像

 docker images        #查看本地所有镜像docker images -q     #查看本地有哪些镜像,只显示镜像IDdocker rmi $(docker images -q) -f    #批量删除本地所有镜像

在这里插入图片描述

8、存储镜像

将镜像保存为本地文件

将镜像保存到本地文件,实际上就是把镜像打包成一个tar包

 格式:docker save -o 存储文件名 存储的镜像[root@localhost ~]#docker save -o mynginx.tar nginx:latest     #打包镜像命名为mynginx.tar存在当前目录下
[root@localhost ~]#ls

在这里插入图片描述

9、载入镜像

将镜像文件导入镜像库中

 格式:
docker load < 存出的文件或者docker load -i 存出的文件#主机A通过scp命令将打包好镜像文件传给主机B,主机B将镜像文件导入到docker本地scp ~/mynginx.tar 192.168.192.15:/root/#主机B将镜像文件导入到镜像库中 docker load < mynginx.tar  或者   docker load -i mynginx.tar 

在这里插入图片描述
在这里插入图片描述
总结

Docker是什么?能干什么?

Docker是基于go语言开发的开源容器引擎,可以在任何主机上运行容器应用,并且每个容器都是一个轻量级的虚拟机。实现 “一次封装,到处运行” 的目的。
三大核心概念:镜像 容器 仓库。还有一些所用到的操作命令。