3.1 初识Docker
一、什么是Docker
项目部署的问题
大型项目组件较多,运行环境也比较复杂,部署时会碰到一些问题
依赖关系复杂,容易出现兼容性能问题
开发、测试、预生产、生产环境有差异
Docker如何解决以来的兼容问题
将Libs(函数库)、Deps(依赖)、配置预应用一起打包
将每个应用放到一个隔离容器去运行,避免相互干扰
不同环境的操作系统不同,Docker解决方式
系统的内核与硬件交互,提供操作硬件的指令
系统应用封装内核指令为函数,便于程序员调用
用户程序基于系统函数库实现功能
举例:Ubuntu和CentOS都是基于Linux内核,只是系统应用不同,提供的函数库有差异
Docker解决方案1:将用户程序与所需要调用的系统函数库(比如CentOS)一起打包
Docker解决方案2:Docker运行到不同的操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行
二、Docker和虚拟机的差别
虚拟机(Virtual Machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在Windows中运行Ubuntu系统,这样就可以运行任意的Ubuntu应用了
对比
特性
Docker
虚拟机
性能
接近原生
性能较差
磁盘占用
一般为MB
一般为GB
启动
秒级
分钟级
三、Docker架构
镜像和容器
镜像(Image):Docker将应用程序及其所需要的依赖、函数库、环境、配置等文件打包在一起,称为镜像
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见
Docker和DockerHub
DockerHub是一个Docker镜像的托管平台。这样的平台成为Docker Registry。
国内也有类似的DockerHub,比如网易云镜像服务器、阿里云镜像服务器等。
也可以搭建私有云
Docker架构
Docker是一个CS架构的程序,由两部分组成
服务器(Server):Docker守护进程,负责处理Docer指令,管理镜像,容器等
客户端(Client):通过命令或RestAPI向Docker服务器发送指令。可以在本地或远程向服务端发送指令
四、Docker的安装
这里举例CentOS 7安装Docker
卸载原有Docker
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备注:这里的 标识换行拼接
安装Docker
首先需要虚拟机联网,安装yum工具
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken更新本地镜像源
# 设置docker镜像源 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开始安装
yum install -y docker-ce备注:docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
启动Docker
Docker应用使用到了各种各样的端口,为了防止逐一修改防火墙端口,建议直接关闭防火墙
# 关闭防火墙命令 # 关闭 systemctl stop firewalld # 禁止开机启动防火墙 systemctl disable firewalld通过命令启动Docker
systemctl start docker # 启动docker服务 systemctl stop docker # 停止docker服务 systemctl restart docker # 重启docker服务查看Docker版本
docker -v
配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
最后更新于
这有帮助吗?