==> 1、Docker学习
==> 2、Docker概述
==> 3、Docker基本组成
==> 4、Docker的安装
==> 5、配置阿里云镜像加速
==> 6、底层原理
环境配置是十分麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…)!费时费力。
发布一个项目(jar + (Redis MySQL jdk ES)), 项目能不能都带上环境安装打包!
之前在服务器配置一个应用的环境Redis MySQL jdk ES Hadoop , 配置超麻烦了,不能够跨平台。
windows, 最后发布到Linux!
传统:开发jar , 运维来做!
现在:开发打包部署上线,一套流程做完!
Docker给以上的问题,提出了解决方案!
java — jar (环境) —打包项目带上环境(镜像)—(Docker仓库:商店)—下载我们发布的镜像—直接运行即可!
JRE—多个应用(端口冲突)—原来都是交叉的!
隔离:Docker核心思想!打包装箱!每个箱子是相互隔离的。
Docker隔离机制,可以将服务器运行到极致。
之前的虚拟机技术
虚拟机技术缺点:1.资源占用多
容器化技术
比较Docker和虚拟机技术的不同:
DevOps(开发、运维)
应用更快速的交付和部署
更便携的升级和扩缩容
更简单的系统运维
更高效的计算资源利用
镜像(image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run ==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行和项目运行是在容器中的)
容器(container):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的Linux系统
仓库(repository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub (默认是国外的)
阿里云…都有容器服务器(配置镜像加速!)
环境准备
# 查看系统内核是否为3.10以上的
[root@iZbp187hy4vqhxzem2izpmZ ~]# uname -r
3.10.0-1127.19.1.el7.x86_64
[root@iZbp187hy4vqhxzem2izpmZ ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
安装
帮助文档
# 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安装yum-utils包
yum install -y yum-utils
# 设置镜像仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #使用阿里国内源安装docker,速度快
# 更新yum软件包索引
yum makecache fast
# 安装最新的Docker CE版本
yum install docker-ce docker-ce-cli containerd.io
# 如果这是您第一次从最近添加的存储库安装软件包,系统将提示您接受GPG密钥,并显示密钥的指纹。 验证指纹是否正确,如果是,请接受密钥。 指纹应该匹配
060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
# 安装特定版本的 Docker CE
在生产系统上,应该安装特定版本的Docker CE,而不是始终使用最新版本。
yum list docker-ce --showduplicates | sort -r
# 安装指定版本的Docker-CE
yum install docker-ce-18.03.1.ce-1.el7.centos -y
# 启动Docker
systemctl start docker
# 查看Docker信息
docker version
# 通过运行hello-world 映像验证 Docker Engine 是否已正确安装
docker run hello-world
# 查看上面下载的 hello-world 镜像
docker images
# 卸载 Docker Engine、CLI 和 Containerd 包
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
# 主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷
rm -rf /var/lib/docker #docker的默认工作路径
1、登录阿里云,找到 容器镜像服务
2、找到镜像加速地址
3、配置使用
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://lidtl20v.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
配置完毕!
Docker是什么工作的?
Docker是一个Client-Server 结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!
DockerServer接收到Docker-Client的指令,就会执行这个命令!
Docker为什么比VM快?
Docker有着比虚拟机更少的抽象层。
docker利用的是宿主机的内核,vm需要是Guest Os。
所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!