当前位置: 首页 > news >正文

Docker学习(一) -- 理论及Linux安装、windows安装

1. 前言

以前的发布:

  1. 开发提交src源代码交给运维
  2. 运营进行部署,发现环境或部分版本不一致:如java版本、mysql版本、redis等
  3. 多台集群,安装麻烦
  4. 扩容或者或者缩容,比较麻烦


我们是不是可以开发直接将已经完成测试的全部环境以及代码一起交给运营进行发布呢?

我们的docker就是来完成这个工作的。

2. 是什么

docker是一种容器虚拟化计数就像是vmware,linux的镜像文件是可以在vmware中运行,而linux镜像文件包括了linux运行的所有内容。而docker的镜像文件可以在dokcer中运行,docker的镜像文件包含了项目运行的所有环境(linux、java、redis等等)

docker的主要目标是:一次镜像、处处运行。

也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的app(可以说是一个web应用或者数据库应用等等)及其运行环境能够做到:一次镜像,处处运行。

2.1 容器和虚拟机的区别:

容器不需要捆绑一整套操作系统,它只需要满足软件运行的最小内核就行了。

  • 传统虚拟机技术是虚拟出一整套硬件后,在其上运行一个完成操作系统,在该系统上再运行所需应用进程
  • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便
  • 每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源

与传统的虚拟机相比,docker优势体现在启动速度快,占用体积小

2.2 docker为什么比虚拟机快

  • docker有着比虚拟机更少的抽象层
  • docker利用的是宿主机的内核,而不需要加载操作系统OS内核


3. docker可以完成的操作:

  1. 用户下载镜像:
    docker pull redis:连接docker主机,docker主机从应用市场下载镜像到本地,动过docker run命令启动镜像,在本地生成一个容器运行
  2. 用户创建自己的镜像
    docker build 根据配置创建镜像
  3. 用户推送镜像到应用市场:
    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-release

5.2 卸载旧版本

sudoyum removedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine

5.3 安装gcc

[root@yhx ~]# yum -y install gcc[root@yhx ~]# yum -y install gcc- c++

5.4 安装需要的软件包

yuminstall-yyum-utils

5.5 设置stable镜像仓库

注意:此处不要用官网的配置,是外网的,很慢,容易超时

这里我们使用阿里云的:

yum-config-manager\--add-repo\https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5.6 更新yum软件包索引

能够适当提升软件包下载速度

yum makecache fast

5.7 安装docker ce

yuminstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5.8 启动docker

systemctl startdocker

5.9 查看是否安装成功

5.10 阿里云镜像加速

[root@VM-0-6-centos ~]# mkdir -p /etc/docker[root@VM-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"]}[root@VM-0-6-centos ~]# systemctl daemon-reload[root@VM-0-6-centos ~]# systemctl restart docker

5.11 设置开机自启动

systemctlenabledocker

6. windows安装docker

6.1 启动虚拟化

打开任务管理器(CTRL+ALT+DELETE)-> 选择性能 -> CPU ->虚拟化,确认是否已启用

6.2 启用Hyper-v

控制面板(Win+R -> 输入control -> 回车) -> 程序 -> 启用或关闭Windows功能 -> 勾选Hyper-v


完成后重启计算机

6.3 安装docker desktop

  1. 下载 哪个地址都可以
    https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe
    https://docs.docker.com/desktop/windows/install/

  2. 安装非常简单,不赘述。安装成功后查看windows任务栏会出现docker的经典logo,小鲸鱼 安装完成后,会出现一个弹出框,提示:close and restart 此时需要重新启动计算机

  3. 重启完成后弹出一个窗口,勾选接受:

  4. 勾选完成后,会弹出一个窗口,提示安装wsl2:

  5. 点击其中的网址,执行步骤四,下载linux内核更新包并安装

  6. 安装完成后,跳过第五步,直接执行第六步,安装linux分发版,我这里安装的是ubuntu 22.04

  7. 安装完成后,系统会弹出bash界面,让你设置登录名和密码,我这里设置报错:参考的对象类型不支持尝试的操作

  8. 解决方案:

    1. 关闭所有VPN,或基于VPN原理的各种加速器(比如UU加速器),然后命令行或者PowerShell中运行netsh winsock reset
    2. 使用https://www.proxifier.com/tmp/Test20200228/NoLsp.exe中提供的可执行文件,在命令行或PowerShell中运行NoLsp.exe C:\windows\system32\wsl.exe
  9. 安装完成:

  10. 重启docker desktop客户端,出现这个界面代表启动成功了

6.4 查看版本 检验是否安装成功

PS C:\Users\xx\Desktop>docker--versionDocker version20.10.17, build 100c701 PS C:\Users\xx\Desktop>

6.5 配置镜像地址

  1. 打开Docker配置中心:任务栏小鲸鱼右键 -> Settings

  2. 配置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"}}}

至此安装完成。

http://www.jsqmd.com/news/500028/

相关文章:

  • 如何用GPT-Prompt-Engineer打造高效AI对话助手:新手必备的终极指南
  • Apache NuttX实战案例:构建智能家居控制系统的完整流程
  • Docker学习(三) -- 镜像、目录挂载(卷映射)、配置映射
  • 视频分析神器Video-Analyzer:基于LLaMA视觉模型和Whisper的完整视频内容分析指南
  • 5分钟快速上手Spec Workflow MCP:零基础配置结构化开发工作流
  • Jetpack Compose性能优化指南:避免重组与提升UI渲染效率的终极方法
  • Gatsby Starter Blog部署终极指南:Netlify、Vercel、GitHub Pages全面对比
  • yi-hack-v3固件FAQ:新手必知的10个常见问题与解决方案
  • Spring Cloud Kubernetes 健康检查与监控:构建可观测云原生应用的完整方案
  • 忘记密码也不怕:yi-hack-v3固件恢复出厂设置与故障排除
  • 如何在ML Workspace中轻松集成TensorFlow和PyTorch:一站式机器学习开发环境实战指南
  • Kiali安全性最佳实践:mTLS状态监控与授权策略验证
  • 实战案例:用Rust和AWS Lambda构建完整的S3图片处理流水线
  • 如何利用Deepagents实现AI代理驱动的利润增长:5个关键策略
  • 掌握TypeScript高级类型的终极指南:Type Challenges实战教程
  • 如何借助Deepagents优化价值:探索AI代理的终极潜力
  • jQuery.payment源码深度剖析:从CoffeeScript到JavaScript的转换艺术
  • bounty-targets-data数据格式详解:如何有效利用JSON和TXT文件
  • PrivescCheck高级用法:自定义检查模块和扩展功能开发终极指南
  • 利用Rust打造的神奇存储法:Infinite-Storage-Glitch
  • EasyFloat最佳实践:10个高效开发技巧与常见问题解决方案
  • 提升终端生产力:Nord tmux主题状态栏自定义与信息展示技巧
  • mlhub123竞赛资源宝库:Kaggle、天池等平台全攻略
  • Reflex终极指南:如何在文件变化时自动运行命令
  • BCM20702 vs BCM4350:BrcmPatchRAM支持的主流蓝牙芯片性能对比
  • 如何快速学习Android开发:官方培训课程中文版(v0.9.7)终极指南
  • 推荐开源项目:BLUI - HTML驱动的Unreal Engine 4 UI和HUD
  • Nord tmux主题的色彩心理学:如何提升专注力与工作效率
  • 2026年质量好的风机品牌推荐:高速永磁风机/电子节能风机/电子高压风机实力工厂推荐 - 品牌宣传支持者
  • Hide My Applist 项目教程