docker、docker-compose、docker swarm和k8s的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker、docker-compose、docker swarm和k8s的区别相关的知识,希望对你有一定的参考价值。

参考技术A

Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。

Docker-Compose 是用来管理你的容器的,有点像一个容器的管家,想象一下当你的Docker中有成百上千的容器需要启动,如果一个一个的启动那得多费时间。有了Docker-Compose你只需要编写一个文件,在这个文件里面声明好要启动的容器,配置一些参数,执行一下这个文件,Docker就会按照你声明的配置去把所有的容器启动起来,只需docker-compose up即可启动所有的容器,但是Docker-Compose只能管理 当前主机 上的Docker,也就是说不能去启动 其他主机 上的Docker容器

Docker Swarm 是一款用来管理 多主机 上的Docker容器的工具,可以负责帮你 启动容器,监控容器状态,如果容器的状态不正常它会帮你重新帮你启动一个新的容器,来提供服务,同时也提供服务之间的负载均衡 ,而这些东西Docker-Compose 是做不到的

Kubernetes它本身的 角色定位是和Docker Swarm 是一样的 ,也就是说他们负责的工作在容器领域来说是相同的部分,都是一个 跨主机的容器管理平台 ,当然也有自己一些不一样的特点,k8s是谷歌公司根据自身的多年的运维经验研发的一款容器管理平台。而Docker Swarm则是由Docker 公司研发的。

既然这两个东西是一样的,那就面临选择的问题,应该学习哪一个技术呢?实际上这两年Kubernetes已经成为了很多大公司的默认使用的容器管理技术,而Docker Swarm已经在这场与Kubernetes竞争中已经逐渐失势,如今容器管理领域已经开始已经逐渐被Kubernetes一统天下了。所以建议大家学习的时候,应该多考虑一下这门技术在行业里面是不是有很多人在使用。

需要注意的是,虽然Docker Swarm在与Kubernetes的竞争中败下阵来,但是这个跟Docker这个容器引擎没有太大关系,它还是整个容器领域技术的基石,Kubernetes离开他什么也不是。

总结
Docker是容器技术的核心、基础,Docker Compose是一个 基于Docker的单主机容器编排工具.而k8s是一个跨主机的集群部署工具 ,功能并不像Docker Swarm和Kubernetes是基于Dcoker的跨主机的容器管理平台那么丰富

centos安装docker,docker-compose

文档

docker官方文档

https://docs.docker.com/engine/install/centos/#install-from-a-package

docker-compose官方文档

https://docs.docker.com/compose/install/

docker安装

卸载旧版本

首先查看电脑上是否安装过docker

-- yum 方式安装的用如下命令查看
yum list installed | grep  docker
-- rpm 方式安装的用如下命令查看
rpm -qa | grep  docker

如果已经存在可以用如下命令卸载

sudo yum remove docker \\
                  docker-client \\
                  docker-client-latest \\
                  docker-common \\
                  docker-latest \\
                  docker-latest-logrotate \\
                  docker-logrotate \\
                  docker-engine \\
                  docker-ce \\
                  docker-ce-cli \\
                  containerd.io

继续查看是否还有文件未删除

whereis docker

如果还存在未删除的的文件可以用如下命令删除

rm -fr 文件名
选择安装方式
  1. 设置 Docker 的存储库并从中安装,以便于安装和升级任务。(推荐)

  2. 下载 RPM 包并 手动安装并完全手动管理升级。这在诸如在无法访问互联网的气隙系统上安装 Docker 等情况下非常有用。

  3. 在测试和开发环境中,也可以选择使用自动化的 便捷脚本来安装 Docker。

方式一:
  1. 新主机上首次安装 Docker Engine 之前,您需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。
sudo yum install -y yum-utils
--设置官方源(任选一个)
sudo yum-config-manager \\
    --add-repo \\
    https://download.docker.com/linux/centos/docker-ce.repo
--设置官方源(建议,速度较快)   
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装最新版本的 Docker Engine 和 containerd,或者进入下一步安装特定版本
sudo yum install docker-ce docker-ce-cli containerd.io
  1. 如果需要安装特定的版本可以用如下命令查看对应的版本号(中间那行全部复制即是版本)
yum list docker-ce --showduplicates | sort -r
  1. 安装指定版本的方式
 sudo yum install docker-ce-版本 docker-ce-cli-版本 containerd.io

例如

 sudo yum install docker-ce-3:19.03.15-3.el8 docker-ce-cli-3:19.03.15-3.el8 containerd.io
  1. 启动docker
sudo systemctl start docker
  1. 检查docker是否安装成功,如果安装成功会打印一句话后退出。
sudo docker run hello-world
  1. 设置docker开机启动
systemctl enable docker
方式二:
  1. 同理如果安装了就先卸载原有的docker

  2. 下载对应系统版本的rmp包

    如果想安装指定版本可以去网上查找到相应的版本替换掉下面的版本即可

wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm
  1. 下载完成后安装
 yum install *.rpm
  1. 启动docker
sudo systemctl start docker
  1. 检查docker是否安装成功,如果安装成功会打印一句话后退出。
sudo docker run hello-world
  1. 设置docker开机启动
systemctl enable docker
方式三:

Docker 在get.docker.com 上提供了一个方便的脚本,可以快速且非交互地将 Docker 安装到开发环境中。不建议将便捷脚本用于生产环境,但可以用作示例来创建适合您需求的配置脚本。

注意:

  • 脚本需要rootsudo特权才能运行。
  • 该脚本尝试检测Linux发行版和版本并为您配置软件包管理系统,并且不允许您自定义大多数安装参数。
  • 该脚本无需确认即可安装依赖项和建议。这可能会安装大量软件包,具体取决于主机的当前配置。
  • 默认情况下,该脚本会安装 Docker、containerd 和 runc 的最新稳定版本。使用此脚本配置机器时,可能会导致 Docker 的主要版本意外升级。在部署到生产系统之前,始终在测试环境中测试(主要)升级。
  • 该脚本并非旨在升级现有的 Docker 安装。使用脚本更新现有安装时,依赖项可能不会更新到预期版本,从而导致使用过时的版本。
  1. 了解安装预步骤
curl -fsSL https://get.docker.com -o get-docker.sh
DRY_RUN=1 sh ./get-docker.sh
  1. 脚本安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
  1. 启动docker
sudo systemctl start docker
  1. 检查docker是否安装成功,如果安装成功会打印一句话后退出。
sudo docker run hello-world
  1. 设置docker开机启动
systemctl enable docker
docker管理

docker管理常用命令

--启动docker
systemctl start docker

--重启docker
systemctl restart docker

--关闭docker
systemctl stop docker

--设置开机启动
systemctl enable docker

--验证docker是否启动成功
dockers version

docker-compose安装

docker-compose是基于docker的,所以在安装之前需要先安装docker,并且docker和docker-compose的版本应该相对应。如果都是最新版本的方式安装,通常情况版本都相互对应

选择安装方式
方式一:
  1. 下载二进制包
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 给docker-compose赋权
sudo chmod +x /usr/local/bin/docker-compose
  1. 测试安装是否成功,出现版本号即表示安装成功
docker-compose version
方式二:
  1. 首先安装python-pip
yum -y install epel-release
yum -y install python-pip
  1. 安装docker-compose
pip install docker-compose
  1. 测试安装是否成功
docker-compose version
卸载方式
方式一

如果是二进制包方式安装的,删除二进制文件即可:

sudo rm /usr/local/bin/docker-compose
方式二

如果通过Python pip工具安装的,则执行如下命令删除 :

sudo pip uninstall docker-compose

以上是关于docker、docker-compose、docker swarm和k8s的区别的主要内容,如果未能解决你的问题,请参考以下文章

Doc-Compose

centos安装docker,docker-compose

docker-compose 启动容器

docker-compose

docker-compose 安装

docker-compose