容器管理工具 Docker生态架构及部署

2023-09-20 21:35:20

目录

一、Docker生态架构

1.1 Docker Containers Are Everywhere

1.2 生态架构

1.2.1 Docker Host

1.2.2 Docker daemon

1.2.3 Registry

1.2.4 Docker client

1.2.5 Image

1.2.6 Container

1.2.7 Docker Dashboard

1.3 Docker版本

二、Docker部署

2.1 使用YUM源部署

2.1.1 获取阿里云开源镜像站YUM源文件

2.1.2 安装Docker-ce

2.1.3 配置Docker Daemon启动文件

2.1.4 启动Docker服务并查看已安装版本

2.2 使用二进制文件部署


一、Docker生态架构

1.1 Docker Containers Are Everywhere

1.2 生态架构

1.2.1 Docker Host

用于安装Docker daemon的主机,即为Docker Host,并且该主机中可基于容器镜像运行容器。

1.2.2 Docker daemon

用于管理Docker Host中运行的容器、容器镜像、容器网络等,管理由Containerd.io生成并提供的容器。它是管理工具,自己不生成容器。

1.2.3 Registry

容器镜像仓库,用于存储已生成容器运行模板的仓库,用户使用时,可直接从容器镜像仓库中下载容器镜像,即容器运行模板,就可以运行容器镜像中包含的应用了。例如:Docker Hub,也可以使用Harbor实现企业私有的容器镜像仓库。

1.2.4 Docker client

Docker Daemon客户端工具,用于同Docker Daemon进行通信,执行用户指令,可部署在Docker Host上,也可以部署在其它主机,能够连接到Docker Daemon即可操作。

1.2.5 Image

把应用运行环境及计算资源打包方式生成可再用于启动容器的不可变的基础设施的模板文件,主要用于基于其启动一个容器。

1.2.6 Container

由容器镜像生成,用于应用程序运行的环境,包含容器镜像中所有文件及用户后添加的文件,属于基于容器镜像生成的可读写层,这也是应用程序活跃的空间。

1.2.7 Docker Dashboard

仅限于MAC与Windows操作系统上安装使用。

Docker Dashboard 提供了一个简单的界面,使您能够直接从您的机器管理您的容器、应用程序和映像,而无需使用 CLI 来执行核心操作。

1.3 Docker版本

  • Docker-ce Docker社区版,主要用于个人开发者测试使用,免费版本

  • Docker-ee Docker企业版,主要用于为企业开发及应用部署使用,收费版本,免费试用一个月,2020年因国际政治原因曾一度限制中国企业使用。

基础准备:

1熟悉主机环境

cat /etc/system-release

2查看内核

3.关闭事关系统安全的配置

  1>关闭firewall配置安全管理工具

firewall-cmd --state

2>sestatus

二、Docker部署

安装Docker-ce版本。

2.1 使用YUM源部署

YUM源可以使用官方YUM源、清华大学开源镜像站配置YUM源,也可以使用阿里云开源镜像站提供的YUM源,建议选择使用阿里云开源镜像站提供的YUM源,原因速度快。

2.1.1 获取阿里云开源镜像站YUM源文件

 

 

 在docker host上使用 wget下载到/etc/yum.repos.d目录中即可。  # wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.1.2 安装Docker-ce

在docker host上安装即可,本次使用YUM源中稳定版本,由于版本在不断更新,不同的时间安装版本也不相同,使用方法基本一致。

 直接安装docker-ce,此为docker daemon,所有依赖将被yum自动安装,含docker client等。
 # yum -y install docker-ce

2.1.3 配置Docker Daemon启动文件

由于Docker使用过程中会对Centos操作系统中的Iptables防火墙中的FORWARD链默认规划产生影响及需要让Docker Daemon接受用户自定义的daemon.json文件,需要要按使用者要求的方式修改。

 # vim /usr/lib/systemd/system/docker.service

2.1.4 启动Docker服务并查看已安装版本

 重启加载daemon文件
 # systemctl daemon-reload
 ​
 启动docker daemon
 # systemctl start docker
 ​
 设置开机自启动
 # systemctl enable docker

 使用docker version客户端命令查看已安装docker软件版本
 # docker version
 Client: Docker Engine - Community 客户端
  Version:           20.10.12
  API version:       1.41
  Go version:        go1.16.12
  Git commit:        e91ed57
  Built:             Mon Dec 13 11:45:41 2021
  OS/Arch:           linux/amd64
  Context:           default
  Experimental:      true
 ​
 Server: Docker Engine - Community Docker管理引擎
  Engine:
   Version:          20.10.12
   API version:      1.41 (minimum version 1.12)
   Go version:       go1.16.12
   Git commit:       459d0df
   Built:            Mon Dec 13 11:44:05 2021
   OS/Arch:          linux/amd64
   Experimental:     false
  containerd:
   Version:          1.4.12
   GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
  runc:
   Version:          1.0.2
   GitCommit:        v1.0.2-0-g52b36a2
  docker-init:
   Version:          0.19.0
   GitCommit:        de40ad0

2.2 使用二进制文件部署

官方不建议此种部署方式,主因为不能自动更新,在条件有限制的情况下使用。

二进制安装参考网址:Install Docker Engine from binaries | Docker Docs

 获取二进制文件,此文件中包含dockerd与docker 2个文件。
 # wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz

 解压下载的文件
 # tar xf docker-20.10.9.tgz
 查看解压出的目录
 # ls docker
 containerd       containerd-shim-runc-v2  docker   docker-init   runc
 containerd-shim  ctr                      dockerd  docker-proxy

 安装解压后的所有二进制文件
 # cp docker/* /usr/bin/

运行Daemon
# dockerd &

会有大量的信息输出,停止后,直接回车即可使用。

如果您需要使用其他选项启动守护程序,请相应地修改上述命令或创建并编辑文件/etc/docker/daemon.json 以添加自定义配置选项。

确认是否可以使用docker客户端命令
# which docker
/usr/bin/docker

使用二进制安装的docker客户端
# docker version
Client:
 Version:           20.10.9
 API version:       1.41
 Go version:        go1.16.8
 Git commit:        c2ea9bc
 Built:             Mon Oct  4 16:03:22 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.9
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.8
  Git commit:       79ea9d3
  Built:            Mon Oct  4 16:07:30 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.4.11
  GitCommit:        5b46e404f6b9f661a205e28d59c982d3634148f8
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
更多推荐

模块化开发_php中使用redis

redis介绍和安装redis数据库,支持数据持久化,常用与分布式锁,支持事务,持久化,非关心型数据库区别:关系型数据库:硬盘,安全,结构简单,易于理解,浪费空间非关系型数据库:内存,断电丢失数据,读写速度快,内存的速度是硬盘的100倍redis:用于缓存压力,提升网站访问速度三种类型:持久化(将数据保存到硬盘中,再开

02. Springboot集成Flyway

目录1、前言2、什么是Flyway?3、为什么要使用Flyway?4、简单示例4.1、创建SpringBoot工程4.2、添加Flyway依赖4.3、Springboot添加Flyway配置4.4、创建执行SQL脚本4.5、启动测试4.6、Flyway版本管理5、SQL脚本文件命名规则6、使用注意事项1、前言在现代应用

kafka介绍

1.kafka概述消息中间件对比特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从)非常高(分布式)非常高(分布式)功能特性成熟的产品、较全的文档、各种协议支持好并发能力强、

SkyWalking快速上手(二)——架构剖析1

文章目录介绍架构概述一、Agent组件介绍Agent的配置配置参数详解service_namesample_n_per_3_secsnamespacecollector.backend_serviceAgent的工作原理二、Collector组件什么是Collector组件?Collector组件的配置配置Collec

List<HashMap<String,String>>实现自定义字符串排序(key排序、Value排序)

系列文章目录SpringBoot+Vue3实现登录验证码功能Java实现发送邮件(定时自动发送邮件)换个角度使用Redis去解决跨域存取Session问题Redis缓存穿透、击穿、雪崩问题及解决方法SpringCache的使用–快速上手篇更多该系列文章请查看我的主页哦文章目录系列文章目录前言一、根据Key值排序1.1.

【Spring Cloud系列】Feign详解与实战

Feign详解与实战文章目录Feign详解与实战一、概述二、什么是Feign三、Feign特性四、Feign简单使用3.1Feign使用步骤3.2Feign具体使用1.引入依赖2.启动类上添加注解3.编写FeignClient接口五、使用Feign发起http请求5.1Maven导入Feign配置,并集成Jackson

全球性区块链服务网络(BSN)机制体系、关键技术和应用项目科技成果鉴定会在北京举行

原标题:《全球性区块链服务网络(BSN)机制体系、关键技术和应用项目科技成果鉴定会在北京举行》2023年9月17日,“全球性区块链服务网络(BSN)机制体系、关键技术和应用”科技成果鉴定会在北京举行。鉴定委员会由北京交通大学移动专用网络国家工程研究中心主任、中国工程院院士张宏科,中国航天科技集团五院研究员、中国科学院院

Android Kotlin 协程详解

前言关于Kotlin基础和高阶函数又不熟悉的可以先参考文章:AndroidKotlin基础详解_袁震的博客-CSDN博客AndroidKotlin高阶详解_袁震的博客-CSDN博客什么是协程?要理解协程,就要将它和线程联系起来理解。线程是什么?我想大家都清楚,而协程,它比线程更加轻量级,一个线程上面可以有多个协程。如果

无人车开源软件架构

参考视频:Apollo自动驾驶入门课程开源软件架构开放式软件层分为三个子层:实时操作系统、运行时框架和应用程序模块层实时操作系统(RTOS)可确保在给定时间内完成特定任务,“实时”是指无人车的操作系统能够及时进行计算,分析并执行相应的操作。以上是在汽车传感器收集到外界数据后的短时间内完成。假设无人车的传感器检测到车辆前

requests模块高级用法练习

文章目录模拟浏览器指纹发送get请求发送post请求文件上传服务器超时模拟浏览器指纹打开http://10.9.75.164/php/functions/setcookie.php网页,找到请求头的UA字段,这段信息是浏览器的指纹(包括当前系统、浏览器名称和版本):在Python脚本中新建一个headers字段,将该U

【ES6】

ES61ES6简介1.1什么是ES61.2为什么使用ES62ES6的新增语法2.1let2.2const2.3let、const、var的区别2.4解构赋值2.4.1数组解构2.4.2对象解构2.5箭头函数2.6剩余参数3ES6的内置对象扩展3.1Array的扩展方法3.1.1扩展运算符(展开语法)3.1.2构造函数方

热文推荐