 -- 理论及Linux安装、windows安装)
1. 前言以前的发布开发提交src源代码交给运维运营进行部署发现环境或部分版本不一致如java版本、mysql版本、redis等多台集群安装麻烦扩容或者或者缩容比较麻烦我们是不是可以开发直接将已经完成测试的全部环境以及代码一起交给运营进行发布呢我们的docker就是来完成这个工作的。2. 是什么docker是一种容器虚拟化计数就像是vmwarelinux的镜像文件是可以在vmware中运行而linux镜像文件包括了linux运行的所有内容。而docker的镜像文件可以在dokcer中运行docker的镜像文件包含了项目运行的所有环境linux、java、redis等等docker的主要目标是一次镜像、处处运行。也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理使用户的app可以说是一个web应用或者数据库应用等等及其运行环境能够做到一次镜像处处运行。2.1 容器和虚拟机的区别容器不需要捆绑一整套操作系统它只需要满足软件运行的最小内核就行了。传统虚拟机技术是虚拟出一整套硬件后在其上运行一个完成操作系统在该系统上再运行所需应用进程容器内的应用进程直接运行于宿主的内核容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便每个容器之间互相隔离每个容器有自己的文件系统容器之间进程不会相互影响能区分计算资源与传统的虚拟机相比docker优势体现在启动速度快占用体积小2.2 docker为什么比虚拟机快docker有着比虚拟机更少的抽象层docker利用的是宿主机的内核而不需要加载操作系统OS内核3. docker可以完成的操作用户下载镜像docker pull redis连接docker主机docker主机从应用市场下载镜像到本地动过docker run命令启动镜像在本地生成一个容器运行用户创建自己的镜像docker build 根据配置创建镜像用户推送镜像到应用市场docker push将自己创建的镜像推送到应用市场4. docker三要素镜像、容器、仓库4.1 镜像是一个只读的模板一个文件。镜像可以用来创建Docker容器一个镜像可以创建很多容器。它也相当于一个root文件系统。比如官方镜像centos7就包含了完成的一套centos7最小系统的root文件系统。又等同于容器的‘源代码’docker镜像文件类似于java的类模板而docker容器实例类似于java中new出来的实例对象4.2 容器容器是用镜像创建的运行实例是一个服务。就像java中的类和实例对象一样镜像是静态的定义容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做一个简单的linux环境包括root用户权限、进程空间、用户空间和网络空间等和运行在其中的应用程序。4.3 仓库是集中存放镜像文件的地方。docker公司提供的官方registry被称为docker hub存放各种镜像模板的地方。5. docker安装注意docker必须部署在linux内核的系统上。如果其他系统想部署docker就必须安装一个虚拟的linux环境windows想安装需要先安装一个linux虚拟机然后再在虚拟机中运行5.1 确定你的centos版本cat/etc/redhat-release5.2 卸载旧版本sudoyum removedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine5.3 安装gcc[rootyhx ~]# yum -y install gcc[rootyhx ~]# yum -y install gcc- c5.4 安装需要的软件包yuminstall-yyum-utils5.5 设置stable镜像仓库注意此处不要用官网的配置是外网的很慢容易超时这里我们使用阿里云的yum-config-manager\--add-repo\https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo5.6 更新yum软件包索引能够适当提升软件包下载速度yum makecache fast5.7 安装docker ceyuminstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin5.8 启动dockersystemctl startdocker5.9 查看是否安装成功5.10 阿里云镜像加速[rootVM-0-6-centos ~]# mkdir -p /etc/docker[rootVM-0-6-centos ~]# tee /etc/docker/daemon.json -EOF{registry-mirrors:[http://hub-mirror.c.163.com,https://mirrors.tuna.tsinghua.edu.cn,http://mirrors.sohu.com,https://ustc-edu-cn.mirror.aliyuncs.com,https://ccr.ccs.tencentyun.com,https://docker.m.daocloud.io,https://docker.awsl9527.cn]}EOF{registry-mirrors:[http://hub-mirror.c.163.com,https://mirrors.tuna.tsinghua.edu.cn,http://mirrors.sohu.com,https://ustc-edu-cn.mirror.aliyuncs.com,https://ccr.ccs.tencentyun.com,https://docker.m.daocloud.io,https://docker.awsl9527.cn]}[rootVM-0-6-centos ~]# systemctl daemon-reload[rootVM-0-6-centos ~]# systemctl restart docker5.11 设置开机自启动systemctlenabledocker6. windows安装docker6.1 启动虚拟化打开任务管理器CTRLALTDELETE- 选择性能 - CPU -虚拟化确认是否已启用6.2 启用Hyper-v控制面板WinR - 输入control - 回车 - 程序 - 启用或关闭Windows功能 - 勾选Hyper-v完成后重启计算机6.3 安装docker desktop下载 哪个地址都可以https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exehttps://docs.docker.com/desktop/windows/install/安装非常简单不赘述。安装成功后查看windows任务栏会出现docker的经典logo小鲸鱼 安装完成后会出现一个弹出框提示close and restart 此时需要重新启动计算机重启完成后弹出一个窗口勾选接受勾选完成后会弹出一个窗口提示安装wsl2点击其中的网址执行步骤四下载linux内核更新包并安装安装完成后跳过第五步直接执行第六步安装linux分发版我这里安装的是ubuntu 22.04安装完成后系统会弹出bash界面让你设置登录名和密码我这里设置报错参考的对象类型不支持尝试的操作解决方案关闭所有VPN或基于VPN原理的各种加速器比如UU加速器然后命令行或者PowerShell中运行netsh winsock reset使用https://www.proxifier.com/tmp/Test20200228/NoLsp.exe中提供的可执行文件在命令行或PowerShell中运行NoLsp.exe C:\windows\system32\wsl.exe安装完成重启docker desktop客户端出现这个界面代表启动成功了6.4 查看版本 检验是否安装成功PS C:\Users\xx\Desktopdocker--versionDocker version20.10.17, build 100c701 PS C:\Users\xx\Desktop6.5 配置镜像地址打开Docker配置中心任务栏小鲸鱼右键 - Settings配置Docker国内镜像加速下载左侧菜单 Docker Engine - 右侧输入框 - Apply Restart{registry-mirrors:[https://registry.docker-cn.com,http://hub-mirror.c.163.com,https://docker.mirrors.ustc.edu.cn],insecure-registries:[],debug:false,experimental:false,features:{buildkit:true},builder:{gc:{enabled:true,defaultKeepStorage:20GB}}}至此安装完成。