Docker概述与安装

虚拟机

虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

微服务的部署策略

部署单体应用意味着运行大型应用的多个相同副本,通常提供若干台(N)服务器(物理机或虚拟 机),在每台服务器上运行若干个(M)应用实例。部署单体应用并不总是简单明了,但还是比部署微 服务应用简单。

微服务应用由几十甚至数百个服务组成。服务用不同的语言和框架写成,每个都是一个小应用,包括特 定的部署、资源、扩展和监控需求,例如,根据服务需求运行若干数量的服务实例。

此外,每个服务实例必须配套提供适当的 CPU、内存 和 I/O 资源。更具挑战性的是,尽管如此复杂,部 署服务还必须快速、可靠和性价比高。

基于主机(物理机或虚机)的多服务实例

“基于主机的多服务实例”模式是最为传统的应用程序部署方法。

在该模式下,软件开发人员可以提供单个或多个物理机或虚机,同时在每个主机上运行多个服务实例。

此模式有几种不同的实现形式,其中包括:将每一个服务实例都作为一个单独的进程,或是在同一进程 中运行多个服务实例。

优点:

由于多个服务实例使用的是同一服务器、及其操作系统,因此它们的资源使用效率相对较 高。 

不足:

除非每个实例都是一个单独的进程,否则您对服务实例的实际控制权并不大。而且,您无法 限制每个实例能够使用到的资源比例。这将带来主机内存被大量消耗的隐患。

如果多个服务实例在同一进程中运行,它们之间会缺乏隔离关系。这通常会导致在相同进程 中,某个行为异常的服务能够直接影响、甚至中断其他的服务。

由于运营团队需要了解服务的详细信息,因此在部署期间,他们可能发生人为错误的风险较 高。显然,开发和运营团队之间需要通过必要的信息交换,来尽可能地消除复杂性。

基于容器的服务实例

在这种部署模式下,每个服务实例都运行在其各自的容器中,因此也被称为操作系统级别的虚拟化机 制。

使用这一模式时,用户将服务打包为容器镜像。每个容器镜像就是一个文件系统镜像,由应用和运行服 务所需的库构成。有的容器镜像还包括完整的 Linux 根文件系统,有的则更轻量。

以部署 Java 服务为例,构建的容器镜像包括 Java 运行时、Apache Tomcat 服务器、以及编译好的 Java 应用。

一旦将服务打包为容器镜像,就启动一到多个容器。通常每个物理机或虚拟主机上会运行多个容器,会 用到 Kubernetes 或 Marathon 这样的集群管理工具来管理容器。

集群管理工具把主机看做资源池,根据每个容器需要的资源和每个主机上可用的资源来调度容器。 

就可以在这里操作东西了

Docker

官网;https://www.docker.com/

Docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。

虚拟机与容器的区别:

VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓 库,然后再安装应用;

Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装 应用。

 Docker三要素

Docker镜像

        Docker 镜像就是一个只读的模板。

Docker仓库

        仓库是集中存放镜像文件的场所

Docker容器

        Docker 利用容器来运行应用。

Docker安装

        Docker支持运行CentOS版本:CentOS 7.X

        内核版本检查: uname -r

        卸载可能存在的旧版本

旧版本的docker叫做docker或者docker-engine,如果有安装,先卸载其以及其依赖,新版本的 docker叫做docker-ce

docker-ce(社区版,免费)

docker-ee(专业版,收费)

安装必要的系统工具: yum install -y yum-utils device-mapper-persistent-data lvm2

执行完毕

 

添加docker-ce安装源: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

配置阿里云Docker Yum源: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

更新yum缓存: yum makecache fast

 

yml.pid占用: -- rm -f /var/run/yum.pid

安装docker-CE: yum -y install docker-ce

 

1)默认安装的是最新版本的稳定版

 2)查看版本列表请使用如下命令:

yum list docker-ce --showduplicates | sort -r

3)如果要安装特定版本的docker-CE请使用如下命令格式:

yum install docker-ce

 Docker基本使用

        基本操作

查看服务状态:systemctl status docker

 

        启停服务

systemctl start docker

 

systemctl stop docker

systemctl restart docker

        开机自启

systemctl enable docker

systemctl disable docker

仓库+镜像

Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下 载

(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库

配置加速器(通过阿里云控制台获得加速地址)

vi /etc/docker/daemon.json

{

"registry-mirrors":["你的阿里云专属加速器地址"]

}

 

重新加载daemon

systemctl daemon-reload

 

重启docker

systemctl restart docker

  

搜索镜像

 

docker search 镜像名称

下载镜像

docker pull 镜像名

获取一个 centos 系统的基础镜像可以使用如下的命令:

docker pull centos (未指定版本一般会使用latest(最新的)版本)

docker pull centos:版本号 (或者直接指定版本)

 

查看宿主机上的镜像

docker images

 

查看image位置

cd /var/lib/docker/containers (/var/lib/docker为docker默认安装目录) && ll

docker rmi 镜像ID/标签

docker rmi centos

docker rmi -f centos:latest

如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。

正确做法:先删除依赖该镜像的所有容器, 再来删除镜像

容器

容器是Docker的另一个核心概念。简单来说,容器是镜像的一个运行实例。

镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态

        创建容器

        docker create -it centos:latest

 

        docker create -it --name centos01 centos:latest

 

        centos:latest 即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否 存在指定的镜像, 不存在就从公有仓库下载

        -it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端

        --name:指定生成的容器的名字,允许空,如果不指定会自动生成

启动、停止、重启容器

docker start 容器ID|name|name:tag

  

docker stop 容器ID|name|name:tag

docker restart 容器ID|name|name:tag

查看当前的容器

docker ps

 

docker ps -a

 

删除容器

docker rm 容器ID

docker rm -f 容器ID

 删除之后就没有hmf那个名称了

进入容器

docker exec -it 容器ID/容器NAME /bin/bash

 

docker exec -it 容器ID/容器NAME bash (简写)

 

退出容器

退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】

如果不想继续运行:按【ctrl+d】或输入exit

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值