【Docker】Docker安装与入门

news2024/11/27 21:03:25

Docker入门与基础命令

Docker简介

  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(系统平滑移植,容器虚拟化技术
  • 安装的时候,把原始环境一模一样地复制过来。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。
  • Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。

Docker理念

传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

  • 基于Go语言实现的开源项目
  • Docker的主要目标是“Build,Ship and Run AnyApp,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

与虚拟机比较

  • 虚拟机:带环境安装的解决方案
    • 资源占用多
    • 冗余步骤多
    • 启动慢
  • 比较
    • 传统虚拟机是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需要的应用进程
    • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟,因此容器需要比传统的虚拟机更为轻便
    • 每个容器之间相互隔离,每个容器有自己的文件系统,容器之间不会相互影响,能区分计算资源
  • Docerk好处(更快的安装,更平滑的迁移)
    • 更快速的应用交付和部署
    • 更便捷的升级和扩缩容
    • 更简单的系统运维
    • 更高效的计算资源利用
Docker容器虚拟机(VM)
操作系统与宿主共享OS宿主机OS上运行虚拟OS
存储大小镜像小,便于存储与运输镜像庞大
运行性能几乎没有额外的性能损失操作系统额外的CPU、内存消耗
移植性轻便、灵活、适用于Linux笨重,与虚拟化耦合较高
软件亲和力面向软件开发者面向硬件工作者
部署速度快速,秒级较慢

下载地址

  • 官网:https://www.docker.com/
  • 仓库: https://hub.docker.com/

Docker的基本组成

  • 镜像(image)
    • 一个只读模版。镜像可以用来创建Docker容器,一个镜像可以用来创建很多容器
    • 相当于是一个root文件系统
    • 相当于容器的源代码,docker镜像文件类似于Java的类模版,而docer容器实例类似于java中new出来的实例对象
  • 容器(container)
    • Dockerl利用容器(Container)独立运行一个或一组应用,用用程序或者服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例,就像Java中的类和实力对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,他可以被启动,开始,停止,删除。每个容器都是相互隔离的、保证安全的平台
    • 可以把容器看作一个简易版的Linux环境(包括root用户权限、进程空间,用户空间和网络空间等)和运行在其中的应用程序
  • 仓库(repository)
    • 集中存放镜像文件的地方(类似于maven仓库、github仓库)
    • 仓库分为私有和公开仓库两种形式

Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。
镜像文件(image)文件生成的容器实例,本身也是一个文件,称为镜像文件。
容器实例 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
仓库 就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。

Docker下载与安装

在这里插入图片描述

  • 目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS 7 (64-bit)上,要求系统为64位、Linux系统内核版本为3.8以上,这里选用Centos7.x
  • 查看自己的内核
    • cat /etc/redhat-release
      在这里插入图片描述

CentOS安装Docker步骤

  • 下载地址:https://docs.docker.com/engine/install/centos/
  1. 卸载旧版本
    在这里插入图片描述
  2. yum安装gcc相关
    • yum -y install gcc
    • yum -y install gcc-c++
  3. 安装配置仓库地址,按照官网要求,安装时需要配置仓库的地址,但是国内访问时速度慢,容易造成下载镜像失败,此处更改为国内的阿里云地址
    在这里插入图片描述
    
    yum install -y yum-utils
    # 配置为国内阿里云地址
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

在这里插入图片描述

  1. 更新yum软件包索引

    yum makecache fast
    

    在这里插入图片描述

  2. 安装Docker客户端

    sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    

    在这里插入图片描述

  3. 启动Docker

    systemctl start docker
    
  4. 测试

    docker version
    

    在这里插入图片描述

    docker run hello-world
    

    在这里插入图片描述
    上述图片代表本地没有镜像,自动去仓库下载最新的镜像,下载完成后自动运行
    在这里插入图片描述

卸载

在这里插入图片描述

Docker阿里云镜像加速

为什么使用

  • 由于Docker的镜像仓库在国外,所以平常下载镜像的速度会比较慢,为此建议配置阿里云的镜像加速器来加快获取Docker官方镜像的速度。

怎么使用

  • 登陆阿里云,进入控制台
    在这里插入图片描述
  • 在服务中找到容器镜像服务
    在这里插入图片描述
  • 获取加速地址在这里插入图片描述
  • 配置加速地址,根据对应的客户端,直接粘底下的命令执行
    在这里插入图片描述
  • 配置完后重启服务器
    systemctl daemon-reload
    systemctl restart docker
    

B站课程链接:尚硅谷2022版Docker实战教程(docker教程天花板)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zookeeper几种应用

分布式锁 master-worker模式 涉及三种角色: 1. master,用于检测新的task、worker的添加,将新的task分配给worker处理 2. worker,将自己注册到系统,被master发现后,监控task 3. client,客户…

ARM pwn 入门 (3)

由于网上的ARM pwn题很少很难找,因此这里拿ROP Emporium的8道题做练习,这个网站有包含x86-64、x86-32、MIPS、ARM共4种架构的elf文件可以做。 1. ret2win 注意:在执行需要动态链接库加载的ARM elf文件时,如果直接使用qemu-arm x…

(免费分享)基于javaweb,ssm旅游景点预定系统

源码获取:关注文末gongzhonghao,输入003领取下载链接 IDEA开发工具,数据库:mysql,Tomcat8 采用:springmvcspringmybatis框架 (1)用户信息管理模块 用户信息管理模块分为后台管理员信息的维护…

zlMediaKit 3 socket模块--怎么封装socket,怎么connect listen/bind write read

socket.cpp socket.h socket SockInfo类&#xff0c;有四个获取四元组信息的虚函数一个获取自身标识符的虚函数 shared_from_this 原理关于boost中enable_shared_from_this类的原理分析 - 阿玛尼迪迪 - 博客园 (cnblogs.com) shared_ptr<Tp> shared_from_this() { re…

RabbitMQ学习(一)

目录&#xff1a; &#xff08;1&#xff09;什么是消息队列 &#xff08;2&#xff09;为什么要使用消息队列 &#xff08;3&#xff09;RabbitMQ特点 &#xff08;4&#xff09;RabbitMQ的安装 &#xff08;5&#xff09;RabbitMQ常用命令 &#xff08;6&#xff09;Ra…

【HTML】标签简单融合运用

&#x1f60a;博主页面&#xff1a;鱿年年 &#x1f449;博主推荐专栏&#xff1a;《WEB前端》&#x1f448; ​&#x1f493;博主格言&#xff1a;追风赶月莫停留&#xff0c;平芜尽处是春山❤️ 一、目录文件夹 1.在vscode建立一个新的目录文件夹如15-综合案例 2.将imag…

图的存储结构

图的存储结构 1.邻接矩阵表示法 设图G (V, E)是具有n个顶点的图&#xff0c;顶点顺序依次为{v1,v2,v3.......} 设a[N][N]为 n 阶方阵 G 的邻接矩阵具有此种性质&#xff1a; 若a[i][j]1&#xff0c;则存在边(vi, vj)或者弧<vi, vj> (即两点之间存在边或弧)若a[i][j]0…

day01 计算机基础和环境搭建

day01 计算机基础和环境搭建 课程目标&#xff1a;让大家了解计算机基础知识并完成python的环境搭建 课程概要&#xff1a; 计算机基础 编程的本质 python的介绍 python环境的搭建 1.计算机基础 1.1 基本概念 计算机的组成 计算机的组计算机是由多个硬件组合而成&#…

快2023了你不会还没学uni-app吧?(uniapp开发快速上手,uniapp项目创建,基础目录介绍)

uniapp新人上手指南前言开发工具快速尝鲜—创建uni-app项目项目基础目录介绍最后前言 uni-app 是一个使用 Vue.js (opens new window)开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到14个平台&#xff0c;听起来是不是非常厉害&#xff0c;如果你后…

【论文阅读】Semi-supervised Sequence Learning半监督序列学习

【论文阅读】Semi-supervised Sequence Learning半监督学习 前言 半监督学习(Semi-Supervised Learning&#xff0c;SSL) 是模式识别和机器学习领域研究的重点问题&#xff0c;是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据&#xff0c;以及同…

别让 Linux 成为拿offer的阻碍

文章目录前言目录结构VI/VIM 编辑器是什么一般模式编辑模式&#xff08;插入模式&#xff09;命令模式模式间转换常用基础命令&#xff08;重要&#xff09;帮助命令man 获得帮助信息help 获得 shell 内置命令的帮助信息type 查看某命令是内置命令还是外部命令常用快捷键文件目…

Java 之 ElasticSearch8.x.x 【一篇文章精通系列】【ES的基本操作,ES安装,ES head + Kibana】

Java 之 ElasticSearch8.x.x 【一篇文章精通系列】【上&#xff1a;ES的基本操作&#xff0c;ES安装&#xff0c;ES head Kibana】一、ElasticSearch的安装1、解压安装ES2、熟悉目录3、启动ES4、安装可视化界面&#xff08;elasticsearch head&#xff09;5、了解ELK6、安装Ki…

【路径插值与抽稀篇】(3)路径插值与抽稀篇

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、路径曲线插值、拟合和逼近的区别1、拟合2、插值3、逼近二、路径点线性插值方法&#xff08;1&#xff09;纯跟踪&#xff…

EDA程序设计--计时器设计

实训题目&#xff1a;计时器的设计 1 系统设计 1.1设计要求 1.1.1 设计任务 设计并制作一台计时器。 1.1.2 性能指标要求 ① 用EDA实训仪的I/O设备和PLD芯片实现计时器的设计。 ② 计时器能够显示时、分和秒。 ③ 用EDA实训仪上的8只八段数码管显示时、分和秒&#xff08;如00…

mysql 常用查询优化策略详解

前言 在程序上线运行一段时间后&#xff0c;一旦数据量上去了&#xff0c;或多或少会感觉到系统出现延迟、卡顿等现象&#xff0c;出现这种问题&#xff0c;就需要程序员或架构师进行系统调优工作了&#xff0c;其中&#xff0c;大量的实践经验表明&#xff0c;调优的手段尽管…

Linux学习——目录操作和库使用

目录 一、打开目录 二、读取目录 三、关闭目录 四、修改文件权限 五、获取文件属性 六、库的概念&#xff1a; 1、静态库 缺点&#xff1a; 优点&#xff1a; 创建静态库步骤&#xff1a; 链接静态库&#xff1a; 2、动态库 动态库的生成步骤&#xff1a; 练习题&a…

论文阅读之Enhancing Transformer with Sememe Knowledge(2020)

文章目录论文阅读Transformmer-SETransformer-SP实验结果总结参考论文阅读 文章建议结合两种简单的方法将义原知识整合&#xff1a; 1&#xff09;基于语言学假设&#xff0c;我们将聚合义原嵌入添加到每个词嵌入中以增强其语义表示&#xff1b; 2&#xff09;我们使用义原预测…

OpenCV实战项目 -- 口罩识别

每次我忘记戴口罩去食堂吃饭的时候&#xff0c;门口都会有志愿者学生提醒你&#xff1a;“你好&#xff0c;麻烦戴下口罩。” 进门后里面那块大屏幕还会发出声音&#xff1a;“请佩戴口罩”。 上次博客仿照宿舍楼下那块大屏幕写了个人脸考勤&#xff0c;所以这次我打算弄一个口…

std::logic_error 错误的解决

今天测试一个程序&#xff0c;突然出现一个 std::logic_error 错误&#xff0c;详细如下&#xff1a; 这个应该是 std::string 相关的一个错误&#xff0c;具体的错误信息还得用 GDB 跟踪一下了。 看第 8 栈帧已经是系统库里的东西了&#xff0c;第 9 帧是我本地的代码&#x…

【C进阶】之定义结构体及使用typedf

1 结构体中包含函数指针类型成员 声明的格式&#xff1a; struct 结构体名 { 返回类型 (*函数指针名)(形参列表); }; 定义结构体类型的变量并对结构体中的函数指针成员进行初始化 struct 结构体名 结构体变量名; 结构体变量名.函数指针名 函数名; // 函数指针指向的函数具有相…