Docker学习1.0-初步了解
初步了解
1. 什么是Docker
大型项目组件较多,运行环境也较为复杂,部署时会有以下问题:
- 每个组件,依赖关系复杂,容易出现兼容性问题
- 开发、测试、生产环境差异,如操作系统不一致
1.1 解决依赖兼容问题
- 将 应用 的Lib(函数库)、Deps(依赖)、配置与应用一起打包,形成可移植的镜像
- 将每个应用放到一个隔离容器去运行(沙箱机制),避免互相干扰
沙箱机制:创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。其为一个独立的虚拟环境,可以用来测试不受信任的应用程序或上网行为。
沙箱就是一个限制应用程序对系统资源的访问的运行环境。
内部程序的执行不影响外部程序的运行
局限性:只适用于同一个操作系统
操作系统结构
不同的程序应用(操作系统),封装的函数库可能不同,如果更换操作系统后,再执行函数,可能会报错
1.2 解决环境差异问题
- 将 用户程序 与所需要的 系统函数库 一起打包
- Docker运行到不同的操作系统时,直接 基于打包的函数库 ,借助于操作系统的Linux内核运行
1.3 总结
Docker是一个快速交付应用、运行应用的技术:
1、可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
2、运行时利用沙箱机制形成隔离容器,各个应用互补干扰
3、启动、移除都可以通过一行命令完成,方便快捷
2. Docker和虚拟机的区别
虚拟机是在操作系统中模拟硬件设备,然后运行另一个操作系统。
利用Hypervisor技术,模拟计算机的各种硬件,在此基础上安装各种操作系统,从而安装各种应用。
两者差别如下
|特性 | Docker | 虚拟机 |
|性能 |直接调用操作系统内核(线程)|先调用虚拟的操作系统执行,后调用真实的操作系统执行|
|硬盘占用| 一般为MB | 一般为GB |
|启动 | 秒级 | 分钟级 |
2.1 总结
Docker和虚拟机的差异:
1、Docker是一个系统进程;虚拟机是在操作系统中的操作系统
2、Docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般
3. Docker架构
3.1 镜像和容器
镜像(Image):Docker将应用程序及其所需依赖、函数库、环境、配置等文件打包在一起,称为镜像。(多个文件)
容器(Container):镜像中的应用程序运行后形成的进程就是容器,Docker会给容器做隔离,对外不可见。
容器拥有独立资源、文件系统等,容器可以读镜像文件,复制一份到自己的容器内部,容器产生的数据也写在容器自己的文件系统内。镜像只读。
3.2 Docker和DockerHub
DockerHub:是Docker镜像的托管平台。又称Docker Registry。
3.3 Docker架构
Docker是一个CS架构
服务端(server):Docker守护进程docker daemon,负责处理Docker指令,管理镜像、容器等
客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令
3.4 总结
- 镜像:将应用程序及其依赖、环境、配置打包在一起
- 容器:镜像运行起来就是容器,一个镜像可以运行 多个容器
- Docker结构:服务端(接受命令或远程请求,操作镜像或容器)
客户端(发送命令或请求到服务端)
- DockerHub:一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry
4. CentOs安装Docker
4.1 卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
4.2 安装Docker
# 安装工具
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
#更新镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
# 安装docker -ce 为社区免费版
yum install -y docker-ce
4.3 配置镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://n0dwemtq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4.4 启动Docker
启动Docker应用需要用到各种端口,为了方便使用,此处关闭防火墙。
# 关闭
systemctl stop firewalld
# 禁止自启
systemctl disable firewalld
# 查看防火墙状态
systemctl status firewalld
# 查看是否安装成功
docker -v
# 启动
systemctl start docker
# 查看状态
systemctl status docker
# 停止
systemctl stop docker
# 重启
systemctl restart docker
最后
以上是学习 黑马程序员《微服务技术全栈教程》的学习笔记
版权声明:本文为m0_60942412原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。