赞
踩
容器是打包代码及其所有依赖项的软件标准单元,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境
容器使软件具备了超强的可移植能力
容器技术的核心就是通过约束和修改进程的动态表现,从而为其创造出一个逻辑的“边界”,,容器其实也是一种沙盒技术,沙盒能够像集装箱一样把应用“装”起来,这样应用与应用之间就因为有了边界而不会相关干扰,也有利于“搬来搬去”,
解决的核心
namespace
namespace是linux用来隔离系统资源的方式,它使PID、IPC、network等系统资源不再具有全局性,而属于特定的一个namespace。
容器是基于Linux的namespace技术,为每一个应用进程都创建了一个完全隔离的环境,让每个应用进程都觉得自己拥有整个系统
cgroup
cgroup是linux内核中的一项功能,可以对进程进行分组,并在分组的基础上限制进程组所使用的资源,包括CPU时间、系统内存、网络带宽等,实现对硬件资源的精细化控制
rootfs
实现了应用运行环境的强一致性
对于容器
容器是应用层的抽象,它将代码和依赖项打包在一起。多个容器可以在同一台计算机上运行,并与其他容器共享操作系统内核,每个容器在用户空间中作为隔离进程运行。容器占用的空间比 VM 少(容器映像大小通常为 数十 MB),可以处理更多应用程序,并且需要更少的 VM 和操作系统。
对于虚拟机
虚拟机 (VM) 是将一台服务器转换为多台服务器的物理硬件的抽象。虚拟机监控程序允许多个 VM 在一台计算机上运行。每个 VM 都包含操作系统、应用程序、必要的二进制文件和库的完整副本,占用数十 GB。 VM 的启动速度也可能很慢。
两者结合
容器和 VM 一起使用为部署和管理应用提供了极大的灵活性
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官网: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 Engine installation overview | Docker Documentation
支持的平台
Docker Engine 可在各种 Linux 平台上使用,macOS 和 Windows 10 通过 Docker 桌面,以及作为静态二进制安装
Docker 提供以下发行版的软件包和架构
在服务器有外网的情况下,推荐使用设置 Docker 的存储库的方式,以便于安装和升级任务
演示环境:
卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
删除旧的docker的数据目录
#卸载docker的时候,默认是不会去删除容器、镜像等资源的,默认存储位置是在/var/lib/docker/
rm -rf /var/lib/docker/
设置存储库
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
安装docker相关程序
#安装Docker Engine、containerd 和 Docker Compose,默认是最新版本
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
启动和配置docker
systemctl start docker
systemctl enable docker
systemctl status docker
运行一个demo验证
#万恶之源helloworld
docker run hello-world
如何在线安装一个特定版本的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
#根据官网的写法
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
演示环境:
下载RPM离线包
官网下载地址:https://download.docker.com/linux/centos/
我选择的索引路径是:Index of linux/centos/7/x86_64/stable/Packages/
除了前面的系统架构选择对应的,stable代表着稳定本
我选择的是最新版本的离线包:
将这些包复制到服务器上面进行安装:
rpm -ivh *.rpm
启动验证:is OK
systemctl start docker
systemctl enable docker
docker run hello-world
此安装方式在centos最小化安装的操作系统下可能存在依赖性问题,如果服务器没有联网,解决起来还是需要一点时间的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。