Docker deamon:
Docker的守护进程,Docker deamon是一个运行在宿主机的后台进程。
Docker的优点:
Docker引擎统一了基础设施环境,应用程序不需要关心操作系统版本、硬件配置
Docker引擎统一了程序的打包方式,通过Docker镜像打包
Docker引擎统一了程序的部署方式,通过Docker容器部署
标准化,应用程序环境依赖、操作系统等问题。容器保证所有配置、依赖始终不变
隔离性与安全,容器之间的进程相互隔离,一个容器出现问题不会影响其他容器
快速部署,镜像构建后秒级启动,资源占用少
更易迁移扩展,容器几乎可以在任何平台运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等
弹性云服务,适合微服务架构,容易实现动态扩容缩容
Docker运行机制:
我们都知道docker里的进程 和外界的进程是一致的,你无论是在容器里还是在宿主主机,在使用top命令查询进程列表,docker所运行的进程(PID)都是一样的,至于容器里的进程会被隔离是因为linux本身的机制Namespace,在创建容器进程时,指定了这个进程所需要启用的一组 Namespace 参数。这样,容器就只能“看”到当前 Namespace 所限定的资源、文件、设备、状态,或者配置。而对于宿主机以及其他不相关的程序,它就完全看不到了,Namespace 技术实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容。基于 Linux Namespace 的隔离机制相比于虚拟化技术也有很多不足之处,其中最主要的问题就是:隔离得不彻底,在 Linux 内核中,有很多资源和对象是不能被 Namespace 化的,最典型的例子就是:时间,你在容器内的时间和宿主主机的时间是一致的,要改大家一起改,以及你所用的系统采用不同版本的linux内核也不一定兼容,不过这些微小的缺陷丝毫不影响docker发光发热。
Docker的安装:
移除旧版本docker:
sudo yum remove docker
安装必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源为阿里云:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存
sudo yum makecache fast
安装dockerCE
sudo yum -y install docker-ce
启动docker服务:
systemctl start docker
常用命令:
重启docker宿主:systemctl daemon-reload
停止docker服务:systemctl stop docker
重启docker服务:systemctl restart docker
查看docker状态:systemctl status docker
开机启动docker:systemctl enable docker
查看docker概要信息:docker info
查看docker版本:docker -v
查看容器里的进程:docker top 容器id
退出容器:exit
镜像加速:更改镜像源
vi /etc/docker/daemon.json 在该文件中输入如下内容:{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
重启服务:
sudo systemctl daemon-reload
sudo systemctl restart docker