Docker——Docker基础+Docker安装

Docker概述

  • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源
  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低
  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了
  • 一个完整的Docker有以下几个部分组成:
    1. DockerClient客户端
    2. Docker Daemon守护进程
    3. Docker Image镜像
    4. DockerContainer容器
  • Docker基于容器技术的轻量级虚拟化解决方案
  • “Docker”一词来自英国口语,意为码头工人(Dock Worker),即从船上装卸货物的人

Docker的基本组成

在这里插入图片描述

  • 镜像(Image)
    • docker镜像就好比是一个模板,可以通过这个模板来创建容器服务
  • 容器(Container)
    • Docker利用容器技术,独立运行一个或多个应用,通过镜像来创建的
    • 启动,停止,删除,基本命令
    • 目前可以把容器理解为简易的Linux系统
  • 仓库(repository)
    • 存放镜像的地方
    • 仓库分为公有仓库和私有仓库

使用Docker的优势

  • 更高效的利用系统资源
    • docker对系统资源的利用率更高,无论是应用执行速度,内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机往往可以运行更多数量的应用
  • 更快速的启动时间
    • 传统的虚拟机技术启动应用服务往往需要数分钟,而docker容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级甚至毫秒级的启动时间,大大的节约了开发测试,部署的时间
  • 一致的运行环境
    • 对开发和运维人员来说,最希望就是一次创建和部署,可以在任意的地方运行
    • (定制应用镜像来实现集成、持续支付、部署。开发人员可以通过dockerfile来进行镜像构建,并结合持续集成系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署)
    • 而且使用dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像
  • 更轻松的迁移
    • 由于docker确保了执行环境的一致性,使得应用的迁移更加的容易
    • docker可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云、甚至是笔记本、其运行结果是一致的
    • 因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
  • 更轻松的维护和拓展
    • docker使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得十分简单
    • 既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本
  • Docker优势摘自Docker的6大优势

安装Docker

#环境查看
uname -r   #系统内核3.10以上
cat /etc/os-release

官方安装文档

  • 卸载旧版本
 sudo yum remove docker \
                   docker-client \
                   docker-client-latest \
                   docker-common \
                   docker-latest \
                   docker-latest-logrotate \
                   docker-logrotate \
                   docker-engine
  • 通过仓库安装
#安装基本的依赖包
sudo yum install -y yum-utils
  • 设置镜像仓库,默认是国外的,需要设置国内阿里云镜像
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装docker前更新yum软件包索引
sudo yum makecache fast
  • 安装docker,基于社区版安装最新版,同时 官方推荐社区版
sudo yum -y install docker-ce docker-ce-cli containerd.io
  • 启动docker
systemctl start docker

#查看版本
[root@docker /]# docker version
Client: Docker Engine - Community
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        f0df350
 Built:             Wed Jun  2 11:58:10 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       b0f5bc3
  Built:            Wed Jun  2 11:56:35 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.6
  GitCommit:        d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc:
  Version:          1.0.0-rc95
  GitCommit:        b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

#测试hello world
sudo docker run hello-world

#寻找本地镜像 没有找到helloword的镜像
Unable to find image 'hello-world:latest' locally

#从library拉取镜像
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete 
Digest: sha256:9f6ad537c5132bcce57f7a0a20e317228d382c3cd61edae14650eec68b2b345c
Status: Downloaded newer image for hello-world:latest从library拉取镜像

#拉取完成后显示Hello from Docker
Hello from Docker!

#查看当前系统内的镜像
sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   3 months ago   13.3kB
  • 了解,卸载dockerdocker默认工作路径 /var/lib/docker
sudo systemctl stop docker
sudo yum -y remove docker-ce docker-ce-cli containerd.io  #卸载依赖
sudo rm -rf /var/lib/docker                               #删除资源
sudo rm -rf /var/lib/containerd                           #删除容器

阿里云镜像加速

阿里云容器镜像服务
在这里插入图片描述

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://k68iw3ol.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

回顾hello world流程

在这里插入图片描述

  • docker run hello-world 回车启动
  • docker会在本地寻找是否存在镜像
    • 如果存在则立即运行
    • 如果不存在,则前往仓库下载
      • 如果仓库不存在镜像返回错误
      • 如果存在,则理解下载,然后立即运行

分析Docker底层原理

Docker是怎么工作的?

  • Docker是一个Client-Server的结构的系统,Docker的守护进程运行在主机上(也可称为宿主机) 通过Socket从客户端访问
  • Docker Server 接受到来自Docker-Client的命令,就会执行这个命令!
    在这里插入图片描述

Docker为什么比虚拟机快?

  • docker有着比虚拟机更少的抽象层
  • docker利用的是宿主机的内核,vm需要是Guest OS。
    -
  • 所以说,新建一个容器的时候,docker不需要想虚拟机一样重新加载一个操作系统内核,避免引导性的操作,
  • 虚拟机是加载Guest OS,分钟级别的,
  • 而docker是利用当前宿主机的操作系统,省略了这个复杂的过程,秒级的!
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Docker —— 从入门到实践》是一本介绍Docker技术的书籍。Docker是一个开源的容器化平台,可以帮助开发者更方便地构建、部署和运行应用程序。这本书从入门到实践的角度,详细介绍了Docker的基本概念、原理和使用方法。 书中首先介绍了Docker的背景和发展历程,包括为什么需要容器化技术以及Docker的优势。接着,作者详细讲解了Docker安装和配置,包括在不同操作系统上的安装方法。然后,书中以一个个实例来引导读者学习如何使用Docker进行应用程序的容器化和部署。这些实例包括创建镜像、构建容器、管理数据卷等。 在实践部分,书中介绍了如何使用Docker搭建开发环境和测试环境,以及如何使用Docker进行持续集成和持续部署。另外,还介绍了Docker的监控和日志管理、网络配置以及安全性等方面的内容。 这本书的优点在于它结合了理论和实践,既对Docker的原理和概念进行了深入讲解,又提供了丰富的实践案例。通过学习这本书,读者可以系统地掌握Docker基础知识,并能够利用Docker来管理和部署应用程序。 总的来说,《Docker —— 从入门到实践》是一本很好的Docker入门书籍,适合有一定编程和系统管理基础的读者。它的内容丰富有趣,通俗易懂,通过读这本书,读者可以快速上手使用Docker,并能够在实践中不断深化对容器化技术的理解和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

611#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值