Docker :
是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
面试:容器技术和虚拟化的区别?
1.docker可以实现虚拟化
2.docker实现了一次部署,到处运行
3.docker沙箱机制,实现了容器之间以及容器和宿主机的隔离
一个完整的Docker有以下几个部分组成:
dockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器
dockerClient客户端
eg:docker --》命令行工具
Docker Daemon守护进程
eg:docker -->systemctl restart docker
Docker Image镜像
eg:rpm --> tomcat镜像 --》tomcatrpm
DockerContainer容器
eg:centos tomcat
docker-ce 开源免费版本
docker-ee 企业收费版
容器:
存储、运输工具
实现对容器内部的物品实现包含(实现了一个相对隔离的环境)
容器:模拟(虚拟)出一个相对隔离的空间
镜像:用来创建容器的模版,放在镜像仓库中,例如nginx,redis,httpd等
Docker与Kvm的对比
kvm:
1. 虚拟机
2. 使用复杂
3. 启动过程相对慢(分钟)
4. 模版文件较大
5. 和物理完全隔离
6. 模拟的是一个完整系统,可以登录并实现管理
docker:
1. 直接虚拟出来一个用户空间
2. 使用简单
3. 启动非常块(秒级)
4. 模版文件很小
5. 在一定程度上和物理机隔离
6. 仅仅是模拟一部分用户空间,不方便管理
Docker使用理由:
1. 快速部署服务
2. 实现隔离
3. 让一个主机运行多个容器
4. 提高开发效率
5. 简化配置过程
6. 实现软件的跨平台
docker安装:
环境准备:
1.docker-ce.repo
2.epel
3.本地源
第一步:下载repo文件
[root@docker yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
vim epel.repo
******
[extra]
name=centos extra
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
[epel]
name=epel
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
*******
第二步:下载docker-ce
[root@docker yum.repos.d]# yum install docker-ce -y
第三步:需要配置镜像加速
vim docker-speed.sh
**********
#!/bin/bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl enable docker
************