Docker之安装Docker

在这里插入图片描述

1. Docker 基本组成

在这里插入图片描述

  • 镜像(image)
    • docker 镜像就好比是一个模板,可以同通过这个模板来创建容器服务,如:tomcat 镜像 => run => tomcat1 容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
    • 可以理解 镜像 好比是一个嘞,容器就是实例1、实例2 、…。
  • 容器(container)
    • Docker 利用容器技术,可以独立运行一个或者一组应用,是通过镜像来创建的
    • 启动、停止、删除、基本命令
    • 目前就可以把这个容器理解为是一个简易的 Linux 系统
  • 仓库(repository)
    • 仓库就是存放镜像的地方
    • 仓库分为公有仓库和私有仓库(类似git)
    • Docker Hub 是国外的
    • 国内:阿里云… 都有容器服务器(而皮质镜像加速)
  • 仓库存放镜像,镜像创建容器

2. 安装Docker

环境查看

#  系统内核是 3.10 以上的
[root@zoom /]# uname -r
3.10.0-1062.18.1.el7.x86_64

# 系统版本

[root@zoom /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

安装

  1. 卸载旧版本

    yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  2. 需要的安装包

    yum install -y yum-utils
    
  3. 设置镜像的仓库

    # 3.1.默认是国外的,不推荐
    yum-config-manager \ 
    	--add-repo \ 	
    	https://download.docker.com/linux/centos/docker-ce.repo
    # 3.2.推荐使用国内的	(这里手敲代码然后复制网站)
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  4. 更新yum软件索引

    yum makecache fast
    
  5. 安装docker docker-ce 社区版 ee是企业版

    yum install docker-ce docker-ce-cli containerd.io
    
  6. 启动 docker

    systemctl start docker
    
  7. 使用 docker version 查看是否安装成功

    docker version
    

    在这里插入图片描述
    8. 测试

    docker run hello-world	
    

    在这里插入图片描述

  8. 查看下载的这个 hello-world 镜像

    docker images
    

    在这里插入图片描述

  • 了解: 卸载 docker
# 1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io

# 2. 删除资源
rm -rf /var/lib/docker

# /var/lib/docker docker的默认工作路径

3. 阿里云镜像加速

  1. 登录阿里云
    https://www.aliyun.com/

  2. 阿里云控制台
    在这里插入图片描述

  3. 搜索容器镜像服务
    在这里插入图片描述

  4. 在镜像加速器中找到CentOS命令
    在这里插入图片描述

  5. 依次执行命令即可

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://qbd2mtyh.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4. 底层原理

Docker 是怎么工作的

  • Docker 是一个Client-Server 结构的系统, Docker 的守护进程运行在主机上。通过Socket 从客户端访问!
  • Docker-Server 接收到 Docker-Client 的指令,就会执行这个命令!
  • Docker 是采用Go语言编写的项目,底层原理就是利用Linux 的 CGroups 和 namespace,本质上就是操作系统的一个进程,CGroups 主要负责资源分配,namespace主要负责容器间的隔离(包括进程和网络等等)。
  1. CGroups
    cgroups,其名称源自控制组群(英语:control groups)的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。

    cgroups的一个设计目标是为不同的应用情况提供统一的接口,从控制单一进程到操作系统层虚拟化(像LXC)。

    cgroups功能:

    资源限制 :组可以被设置不超过设定的内存限制;这也包括虚拟内存。
    优先级:一些组可能会得到大量的CPU 或磁盘IO吞吐量。
    结算:用来度量系统实际用了多少资源。
    控制:冻结组或检查点和重启动。

  2. Namespace
    名字空间(英语:Namespace),也称命名空间、名称空间等,它表示着一个标识(identifier)的可见范围。一个标识符可在多个名字空间中定义,它在不同名字空间中的含义是互不相干的。这样,在一个新的名字空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他名字空间中。

    在编程语言中,名字空间是对作用域的一种特殊的抽象,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。许多现代编程语言都支持名字空间。在一些编程语言中,名字空间本身的标识符也属于一个外层的名字空间,也即名字空间可以嵌套,构成一个名字空间树,树根则是无名的全局名字空间。

posted on 2023-03-23 17:57  JAVA开发区  阅读(18)  评论(0编辑  收藏  举报  来源