16_0_docker基础架构与安装

01 基本概念

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。

02 设计目标

提供简单的应用程序打包工具

开发人员和运维人员职责逻辑分离

开发人员负责
1、开发项目
2、打包项目环境+代码成镜像
3、部署到容器平台

运维人员负责
1、专注怎么高效去管理这些容器
2、持续发布有问题更快解决

多环境保持一致性

03 应用场景

应用程序打包和发布

应用程序隔离

持续集成

部署微服务

快速搭建测试环境

提供PaaS产品(平台即服务)

04 基本架构

组件 描述
Client 提供用户跟Docker交互的入口,可以通过client跟docker发送各种API
docker damon 用于监听并处理docker client发送的api请求并且管理docker镜像(images), 容器(container)以及文件结构。同时也用于跟其它docker daemon进行交互
Registry docker存储镜像的仓库。Docker Hub是一个公共仓库,类似与maven的中心仓库,默认情况下docker会从该公共仓库获取镜像。当然docker也可以像maven一样有自己的私有registry
image 和container都是docker的对象。 docker image主要定义docker容器执行指令的模板。可以把docker image比作是java的类,docker container比作的java的对象,docker的镜像通常都是在另一个image基础上构建的
container 和image都是docker的对象,container是docker镜像的运行实例,用户可以通过docker api对docker容器进行start/stop/create/move/delete等等操作

05 Docker安装

关闭selinux 和 firewalld

# 查看 selinux 状态
sestatus
# 永久关闭 selinux
sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config

# 永久关闭 firewalld
systemctl disable firewalld.service

配置 Centos 7 yum 源

# 该源包含base,updates,epel,会自动匹配Centos系统版本
# 参考USTC:https://mirrors.ustc.edu.cn/help/centos.html

sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
         -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
         -i.bak \
         /etc/yum.repos.d/CentOS-Base.repo
# 清理缓存
yum makecache 

安装Docker

# 安装依赖包
yum install -y yum-utils 
# 添加Docker软件包源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker CE
yum install -y docker-ce
# 启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker
posted @   Z-Y-Z  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示