当前位置:   article > 正文

Docker笔记 | 入门指南_dockerhub官网

dockerhub官网

容器技术

概述

容器是打包代码及其所有依赖项的软件标准单元,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境

  • 一种软件打包技术:打包应用及运行环境
  • 可以实现跨平台部署(虚拟机、物理服务器、公有云主机等)

容器发展的必要性

容器使软件具备了超强的可移植能力

  1. 应用包含了多种服务,不同的服务有自己所依赖的库和软件包
  2. 多种部署环境的需求使得应用及服务需要动态迁移到不同的环境

容器技术的优缺点

  1. 轻量化
  2. 细粒度(资源管控)
  3. 高性能(资源利用率高):操作系统级别的虚拟化机制
  4. 环境的一致性:实现了操作系统的解耦
  5. 管理便捷性:生命周期管理(迁移、扩展、运维等)
  6. 安全隔离面增加

容器的基本技术

容器技术的核心就是通过约束和修改进程的动态表现,从而为其创造出一个逻辑的“边界”,,容器其实也是一种沙盒技术,沙盒能够像集装箱一样把应用“装”起来,这样应用与应用之间就因为有了边界而不会相关干扰,也有利于“搬来搬去”,

解决的核心

  • 应用的资源隔离限制
  • 应用的可移植性

namespace

namespace是linux用来隔离系统资源的方式,它使PID、IPC、network等系统资源不再具有全局性,而属于特定的一个namespace。

容器是基于Linux的namespace技术,为每一个应用进程都创建了一个完全隔离的环境,让每个应用进程都觉得自己拥有整个系统

cgroup

cgroup是linux内核中的一项功能,可以对进程进行分组,并在分组的基础上限制进程组所使用的资源,包括CPU时间、系统内存、网络带宽等,实现对硬件资源的精细化控制

rootfs

实现了应用运行环境的强一致性

比较容器与虚拟机

image-20230204145144769

对于容器

容器是应用层的抽象,它将代码和依赖项打包在一起。多个容器可以在同一台计算机上运行,并与其他容器共享操作系统内核,每个容器在用户空间中作为隔离进程运行。容器占用的空间比 VM 少(容器映像大小通常为 数十 MB),可以处理更多应用程序,并且需要更少的 VM 和操作系统。

对于虚拟机

虚拟机 (VM) 是将一台服务器转换为多台服务器的物理硬件的抽象。虚拟机监控程序允许多个 VM 在一台计算机上运行。每个 VM 都包含操作系统、应用程序、必要的二进制文件和库的完整副本,占用数十 GB。 VM 的启动速度也可能很慢。

两者结合

容器和 VM 一起使用为部署和管理应用提供了极大的灵活性

Docker是什么

概述

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.

  • Docker是一个平台:用于开发、发布、运行应用程序的开放的平台
  • Docker将应用程序与基础设施分开,达到快速交付应用程序的目的
  • Docker能够快速运送、测试、部署你的代码,从来显著减少交付软件的延迟

image-20230204153534600

能够做什么

  • 快速、一致地交付你的应用程序
  • 响应式部署和扩展
  • 同一硬件上运行更多工作负载,非常适合高密度环境以及需要执行更多操作的中小型部署更少的资源
  • 秒级部署一个你的专属WordPress

底层技术

  1. Docker使用Go编程语言编写的
  2. 利用了Linux内核的几个特性来提供功能
    • Docker使用了容器技术(提供隔离工作区)
    • 运行容器时,Docker会为该容器创建一组namespace(这些命名空间提供一层隔离。容器的每个方面都运行 在单独的命名空间中,其访问权限仅限于该命名空间。)

官方网站

Docker官网:https://docs.docker.com/ https://docs.docker.com/get-started/overview/

Docker的github地址:https://github.com/moby/moby

DockerHub官网:https://registry.hub.docker.com

Docker如何安装

官网参考:Docker Engine installation overview | Docker Documentation

概述

支持的平台

  • Docker Engine 可在各种 Linux 平台上使用,macOS 和 Windows 10 通过 Docker 桌面,以及作为静态二进制安装

  • Docker 提供以下发行版的软件包和架构

    image-20230204160619946

CentOS 在线安装 Docker

在服务器有外网的情况下,推荐使用设置 Docker 的存储库的方式,以便于安装和升级任务

演示环境:

  • CentOS Linux release 7.6.1810 (Core)
  • 有外网访问权限
  • root 账号操作

卸载旧版本

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

image-20230204161455142

删除旧的docker的数据目录

#卸载docker的时候,默认是不会去删除容器、镜像等资源的,默认存储位置是在/var/lib/docker/
rm -rf /var/lib/docker/
  • 1
  • 2

设置存储库

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
#上述docker-ce.repo文件也可以替换成国内的存储库文件,这样下载会很稳定、很快
#阿里云国内存储库https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

image-20230204161756968

安装docker相关程序

#安装Docker Engine、containerd 和 Docker Compose,默认是最新版本
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
  • 1
  • 2

image-20230204161950003

启动和配置docker

systemctl start docker
systemctl enable docker
systemctl status docker
  • 1
  • 2
  • 3

image-20230204162105414

运行一个demo验证

#万恶之源helloworld
docker run hello-world
  • 1
  • 2

image-20230204162223733

如何在线安装一个特定版本的docker呢?

#先在线卸载安装好的最新的docker
yum remove -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
#删除默认存储目录
rm -rf /var/lib/docker/
#还是按照前面的设置好存储库
#先查找有哪些版本
yum list docker-ce --showduplicates | sort -r
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

image-20230204162621902

#根据官网的写法
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
#我们试试(比如需要安装3:20.10.8-3.el7)
yum install docker-ce-3:20.10.8-3.el7
#发现没有这个包
#正确的应该还要加一个东西就可以了
yum install docker-ce-3:20.10.8-3.el7.x86_64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

image-20230204163031264

image-20230204163321174

CentOS 离线安装 Docker

演示环境:

  • CentOS Linux release 7.6.1810 (Core)
  • 有外网访问权限
  • root 账号操作

下载RPM离线包

官网下载地址:https://download.docker.com/linux/centos/

我选择的索引路径是:Index of linux/centos/7/x86_64/stable/Packages/

除了前面的系统架构选择对应的,stable代表着稳定本
  • 1

我选择的是最新版本的离线包:

  • docker-ce-cli-23.0.0-1.el7.x86_64.rpm
  • docker-ce-23.0.0-1.el7.x86_64.rpm
  • docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
  • containerd.io-1.6.9-3.1.el7.x86_64.rpm
  • docker-ce-rootless-extras-23.0.0-1.el7.x86_64.rpm(安装docker-ce需要)

将这些包复制到服务器上面进行安装:

rpm -ivh *.rpm
  • 1

image-20230204165425267

启动验证:is OK

systemctl start docker
systemctl enable docker
docker run hello-world
  • 1
  • 2
  • 3

image-20230204165526974

此安装方式在centos最小化安装的操作系统下可能存在依赖性问题,如果服务器没有联网,解决起来还是需要一点时间的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/964344
推荐阅读
相关标签
  

闽ICP备14008679号