一起学docker(一)| 初识docker

初识 Docker

官网地址

在这里插入图片描述

  • Docker 是一个开源的应用容器引擎

  • 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。

  • 容器是完全使用沙箱机制,相互隔离

  • 容器性能开销极低

  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)

Docker 架构

在这里插入图片描述

镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

安装/卸载

安装
# 1、卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 2、yum 包更新到最新 
yum update

# 3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 4、 设置yum源
# 默认地址
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里云镜像地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 5、 安装
# (1)最新docker版本
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# (2)指定版本
# 先查询可用版本
yum list docker-ce --showduplicates | sort -r
# <VERSION_STRING>所需版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

# 6、 查看docker版本,验证是否验证成功
docker -v

# 7、启动
sudo systemctl start docker

# 8、helloworld
sudo docker run hello-world
阿里云镜像加速
  • 登录阿里云

  • 产品—>容器—>容器镜像服务—>管理控制台

  • 镜像工具—>镜像加速器

  • 复制加速地址

在这里插入图片描述

方式一:

  1. 进入docker目录

    [root@VM-4-9-centos ~]# cd /etc/docker/
    [root@VM-4-9-centos docker]# pwd
    /etc/docker
    [root@VM-4-9-centos docker]# 
    
  2. 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

    [root@VM-4-9-centos docker]# tee /etc/docker/daemon.json <<-'EOF'
    > {
    >   "registry-mirrors": ["https://t01llloc.mirror.aliyuncs.com"]
    > }
    > EOF
    {
      "registry-mirrors": ["https://t01llloc.mirror.aliyuncs.com"]
    }
    
  3. 重载配置

    [root@VM-4-9-centos docker]# systemctl daemon-reload
    
  4. 重启docker

    [root@VM-4-9-centos docker]# systemctl restart docker
    [root@VM-4-9-centos docker]# docker run hello-world
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    

方式二:

  1. 进入docker目录

  2. 修改daemon.json配置文件

    {
    “registry-mirrors”: [“https://t01llloc.mirror.aliyuncs.com”]
    }

    将里面的加速器地址修改成自己的即可

    [root@VM-4-9-centos docker]# vim daemon.json 
    [root@VM-4-9-centos docker]#
    
  3. 重载配置

  4. 重启docker

卸载
# 1、卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# 2、主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

hello-world 运行流程

在这里插入图片描述

底层原理

1、Docker 是如何工作的?

Docker是一个Client-Server架构的系统。

Docker的守护进程运行在主机上,通过Socket从客户端访问,Docker-Server接收到Docker-Client的指令,就会执行这个命令。

在这里插入图片描述

2、Docker 为何比VM快?
  • Docker有着比虚拟机更少的抽象层;
  • Docker利用的是宿主机的内核,虚拟机需要Guest OS。

在这里插入图片描述

新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。

虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!

常见的虚拟机Guest OS包括但不限于以下几种:

  • Windows系列:包括Windows 10、Windows 8、Windows 7、Windows XP等。
  • Linux系列:包括Ubuntu、Debian、CentOS、Red Hat等。
  • macOS系列:包括macOS Catalina、macOS Mojave等。
  • Unix系列:包括FreeBSD、OpenBSD等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值