概述
官网地址:Docker Documentation | Docker Documentation
Docker Hub网址:Docker Hub
Docker是以容器虚拟化技术为基础的软件:虚拟化技术是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和数据存储。
-
容器虚拟化:Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离
-
Docker容器只将软件运行所需的所有资源打包到一个隔离的容器中,系统高效轻量
-
容器内应用进程直接运行与宿主内核,不进行硬件虚拟,容器间互相隔离,且各自有独立的文件系统
Docker基于Linux软件容器技术,Linux软件容器借助namespace与Control Groups
-
namespace概念:
-
namespace 是 Linux 内核用来隔离内核资源的方式。通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在。具体的实现方式是把一个或多个进程的相关资源指定在同一个 namespace 中。
Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。
-
Red Hat Enterprise Linux 6 提供了一个新的内核特性: CONTROL GROUPS(Cgroups),它为内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。详细内容来自(Control Groups简介 (Cgroups) - 让编程成为一种习惯 - 博客园 (cnblogs.com))
安装Docker
#安装Docker yum install docker -y #启动Docker service docker start #停止Docker service docker stop #配置Docker镜像加速器 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://mirror.ccs.tencentyun.com"] } EOF #重启Docker service docker restart #查看Docker运行状态 systemctl status docker
安装运行redis
docker run -itd --name redis -p 6379:6379 \ --privileged=true \ -v /redis/data:/data --restart always redis \ --appendonly yes --requirepass "psd"
说明: -itd 默认后台启动 –name 容器名称 -p 服务器端口:容器端口 -v 服务器目录:容器目录 –restart always 遇错总是重启 –appendonly yes 启动持久化 –requirepass 需要密码
进入Redis控制台
docker exec -it redis redis-cli
卸载Docker
yum remove docker-ce docker-ce-cli containerd.io # 卸载依赖 rm -rf /var/lib/docker # 删除资源 . /var/lib/docker是docker的默认工作路径