初识Docker并在linux完成安装

news2024/10/7 6:51:33

文章目录

    • 一、 初识Docker
    • 1.1 简介
    • 1.2 Docker和虚拟机的异同
      • 1.3 Docker架构
    • 二、 DockerHub
    • 三、Docker的安装

一、 初识Docker

1.1 简介

  Docker是一种开源的容器化平台,可以让开发者在容器中打包、发布、运行和管理应用程序。它使用轻量级的容器来隔离应用程序和它们的依赖,使得应用程序可以在任何地方以相同的方式运行,不受环境差异的影响。
在这里插入图片描述

  Docker通过提供一个容器化的环境来解决了传统应用程序开发和部署过程中的许多问题。使用Docker可以轻松地构建和维护容器,这些容器可以包含应用程序及其依赖项。这使得应用程序可以更快地部署、更容易地管理和更容易地扩展。

  Docker还提供了一个中央存储库,称为Docker Hub,开发者可以在其中分享和使用容器。Docker Hub包含许多公共容器,开发者可以使用这些容器来快速构建应用程序,并且可以自己构建、发布和共享自己的容器。

1.2 Docker和虚拟机的异同

相似点:

  • 都可以用来隔离和管理应用程序的运行环境。
  • 都可以在不同的操作系统上运行应用程序。
  • 都可以实现多租户的应用程序部署。

区别:

  • Docker是一种容器化技术,而虚拟机是一种虚拟化技术。Docker使用Linux的cgroups和命名空间技术来隔离应用程序的运行环境,而虚拟机是在物理计算机上模拟一个完整的计算机环境。
  • Docker容器共享宿主操作系统和资源,而虚拟机则在每个虚拟机中运行独立的操作系统和资源。
  • Docker容器更轻量、更快速、更易部署和更易管理,而虚拟机可以实现更高的隔离和安全性。
  • Docker容器可以共享主机的文件系统和网络接口,而虚拟机需要在主机上分配独立的网络接口和存储设备。

1.3 Docker架构

Docker的架构分为客户端-服务器架构和主机-容器架构。
在这里插入图片描述

客户端-服务器架构:
  Docker的客户端可以是一个命令行工具,也可以是一个图形用户界面。客户端与Docker守护进程进行通信,通过API向守护进程发出命令,例如构建、运行、停止和删除容器等操作。守护进程接收到命令后,执行相应的操作并返回结果给客户端。

主机-容器架构: Docker的主机-容器架构包括以下组件:

  • Docker守护进程:运行在主机上的Docker引擎,负责管理容器的生命周期、镜像的构建和存储等任务。
  • Docker镜像:用于构建容器的文件系统模板,包含应用程序和其依赖项,可以通过Dockerfile或从Docker Hub等容器仓库获取。
  • Docker容器:运行在Docker守护进程中的Docker镜像实例,包括文件系统、应用程序和运行时环境等组件。

  Docker容器是在Docker镜像的基础上创建的运行实例,每个容器都有自己的文件系统、网络接口和资源限制。多个容器可以运行在同一主机上,它们共享主机的操作系统和内核,但是由于容器之间相互隔离,因此它们的应用程序和依赖项互不干扰。

  Docker的架构为应用程序的打包、发布、运行和管理提供了便利,可以快速地构建和部署应用程序,并且能够在不同的环境中运行相同的应用程序,降低了应用程序开发和部署的复杂性。

二、 DockerHub

  DockerHub是一个官方的、面向开发者和企业用户的云端Docker仓库,用户可以在该仓库中存储和分享Docker镜像、构建和测试应用程序,并与其他用户共享容器化应用程序。
在这里插入图片描述

DockerHub提供了以下功能:

  • 存储和分享Docker镜像:用户可以在DockerHub上创建和管理自己的Docker镜像,也可以从其他用户共享的镜像中获取,便于应用程序的构建和部署。
  • 自动化构建:用户可以将GitHub、Bitbucket等代码托管平台中的代码与DockerHub关联,实现自动化构建Docker镜像。
  • 私有仓库:用户可以在DockerHub上创建私有仓库,用于存储和管理自己的私有Docker镜像。
  • 团队协作:用户可以在DockerHub上创建组织,并邀请成员加入,实现多人协作开发和共享镜像。
  • Webhooks:用户可以设置Webhooks,以便在Docker镜像构建和推送时触发自定义的操作,例如发送通知或调用API等。

  DockerHub提供了便利的Docker镜像存储、构建和部署服务,为应用程序开发和部署提供了支持。用户可以通过DockerHub轻松地构建和部署Docker容器化应用程序,实现应用程序的快速迭代和交付。

类似的还有阿里云镜像服务,统称为DockerRegistry。

三、Docker的安装

  1. 安装yum工具
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken
  1. 更新本地镜像源:
# 设置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
  1. 安装docker:
#docker-ce为社区免费版本#docker-ce为社区免费版本
yum install -y docker-ce
  1. 启动docker

Docker应用需要用到各种端口,需要关闭防火墙:

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务
systemctl stop docker  # 停止docker服务
systemctl restart docker  # 重启docker服务

然后输入命令,可以查看docker版本:

docker -v
  1. 配置镜像
#新建docker文件夹
sudo mkdir -p /etc/docker
#新建daemon.json文件,输入内容
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://9po6july.mirror.aliyuncs.com"]
}
EOF
#重新加载
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker

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

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

相关文章

Scrapy爬虫基本使用与股票数据Scrapy爬虫

Scrapy爬虫的常用命令 scrapy命令行格式 红色是常用的三种命令 为什么Scrapy采用命令行创建和运行爬虫&#xff1f; 命令行&#xff08;不是图形界面&#xff09;更容易自动化&#xff0c;适合脚本控制 本质上&#xff0c;Scrapy是给程序员用的&#xff0c;功能&#xff08…

vue打包之后,可以进行修改配置后端地址、端口等信息方法

前言 用vue-cli构建的项目通常是采用前后端分离的开发模式&#xff0c;也就是前端与后台完全分离&#xff0c;此时就需要将后台接口地址打包进项目中&#xff0c;但是&#xff0c;难道我们只是改个接口地址也要重新打包吗&#xff1f;当然不行了&#xff0c;那就太麻烦了&#…

支付宝沙箱环境+SpringBoot+内网穿透整合开发

目录 1.查看沙箱账号 2.内网穿透 3.沙箱环境整合SpringBoot开发 下面我将以实际案例详细介绍如何使用沙箱环境进行支付宝支付对接的开发 1.查看沙箱账号 首先什么是沙箱账号&#xff1f; 沙箱账号是指在支付宝沙箱环境中创建的测试账户&#xff0c;用于模拟真实的支付流程…

The 2022 ICPC Asia Xian Regional Contest

题目顺序大致按照难度排序。 F. Hotel 现在酒店中有单人间和双人间&#xff0c;价格分别是c1&#xff0c;c2&#xff0c;现在有n个队&#xff0c;每队三个人&#xff0c;性别分别用字母表示&#xff0c;当两个人性别相同且在同一个队时&#xff0c;他们可以住在双人间中。求最…

【跑跑Github开源项目系列】基于YOLO和Streamlit的车辆识别系统demo

【跑跑Github开源项目系列】基于YOLO和Streamlit的车辆识别系统demo写在前面环境配置创建虚拟环境安装库项目运行写在前面 相信很多朋友跟我一样在github等平台上偷代码 (读书人的事怎么能叫偷呢) 的时候会发现伟大且无私的作者虽然开源了代码但是readme文件该写的没写&#x…

2023TYUT移动应用软件开发程序设计和填空

目录 程序设计 程序设计1&#xff1a;根据要求设计UI,补充相应布局文件&#xff0c;即.xml文件 程序设计2&#xff1a;根据要求,补充Activity.java文件 程序填空 说明&#xff1a; 程序设计 程序设计1&#xff1a;根据要求设计UI,补充相应布局文件&#xff0c;即.xml文件…

【C++初阶】第十篇:list模拟实现

文章目录一、list的模拟实现三个类及其成员函数接口总览结点类的模拟实现迭代器类的模拟实现迭代器类的模板参数说明迭代器operator->的重载迭代器模拟实现代码list的模拟实现无参构造函数带参构造拷贝构造函数赋值运算符重载函数析构函数begin和endinserteraselist的迭代器…

WordPress添加阿里云OSS对象云储存配置教程

背景&#xff1a;随着页面文章增多&#xff0c;内置图片存储拖连网站响应速度&#xff0c;这里对我来说主要是想提升速度 目的&#xff1a;使用第三方云存储作为图片外存储(图床)&#xff0c;这样处理可以为服务器节省很多磁盘空间&#xff0c;在网站搬家的时候减少文件迁移的工…

【数据结构】堆(笔记总结)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&…

MySQL--数据库基础--0406

目录 1.什么是数据库&#xff1f; 2. 基本使用 2.1 连接服务器 2.2 数据库的操作在Linux中的体现 2.3 使用案例 3.服务器&#xff0c;数据库&#xff0c;表关系 4.数据逻辑存储 5.SQL的分类 6.存储引擎 1.什么是数据库&#xff1f; 数据库和文件 文件或者数据库&…

OK-MX93开发板-实现Web页面无线点灯

上篇文章&#xff1a;i.MX9352——介绍一款多核异构开发板&#xff0c;介绍了OK-MX9352开发板的基础硬件功能。 本篇来使用OK-MX9352开发板&#xff0c;通过Web界面进行点灯测试&#xff0c;最终的效果如下&#xff1a; 在进行代码编写之前&#xff0c;先在Ubuntu虚拟机上把这…

对比损失Contrastive Loss(CVPR 2006)原理解析

paper&#xff1a;http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf 本文提出的对比损失contrastive loss被广泛应用于自监督模型中&#xff0c;但最初对比损失是作为一个特征降维方法而提出的。 摘要 降维是学习一种映射关系&#xff0c;通过这种映射关…

day10 线程池及gdb调试多线程

目录 线程池的概念 概念&#xff1a; 必要性&#xff1a; 线程池的基本结构&#xff1a; 线程池的实现 完整代码 线程的GDB调试 线程池的概念 概念&#xff1a; 通俗的讲就是一个线程的池子&#xff0c;可以循环的完成任务的一组线程集合&#xff1b; 必要性&#xff…

【软件工程】为什么要选择软件工程专业?

个人主页&#xff1a;【&#x1f60a;个人主页】 文章目录前言软件工程&#x1f4bb;&#x1f4bb;&#x1f4bb;就业岗位&#x1f468;‍&#x1f4bb;&#x1f468;‍&#x1f4bb;&#x1f468;‍&#x1f4bb;就业前景&#x1f6e9;️&#x1f6e9;️&#x1f6e9;️工作环…

趣谈之什么是 API 货币化?

本文介绍了 API 货币化和 APISIX 实现 API 货币化方法。 作者刘维&#xff0c;API7.ai 技术工程师&#xff0c;Apache APISIX Contributor 原文链接 什么是 API 货币化 想象你开发并部署了一个服务&#xff0c;能够搜集你所在城市所有超市的打折和优惠信息&#xff0c;其他的…

C生万物 | 校招热门考点 —— 结构体内存对齐

文章目录一、前言结构体偏移量计算&#xff1a;offsetof二、规则介绍例题的分解与细说三、习题演练1、练习①2、练习②四、为什么存在内存对齐?1、平台原因(移植原因)2、性能原因五、如何修改默认对齐数六、实战演练✍一道百度笔试题&#xff1a; offsetof 宏的实现&#x1f4…

深度学习基础篇之深度神经网络(DNN)

神经网络不应该看做是一个算法&#xff0c;应该看做是一个特征挖掘方法。在实际的业界发展过程中&#xff0c;数据的作用往往大于模型&#xff0c;当我们把数据的隐藏特征提取出来之后&#xff0c;用很简单的模型也能预测的很好。 神经网络模型由生物神经中得到启发。在生物神…

【Linux】Makefile的简述

目录 前言&#xff1a; 一、Makefile的规则 二、Makefile的函数语法 &#xff08;1&#xff09;通配符pattern ​&#xff08;2&#xff09; 删除clean ​&#xff08;3&#xff09; 立即变量、延时变量 &#xff08;4&#xff09; Makefile常用函数 3-1.Makefile要达到…

第11章_常用类和基础API

第11章_常用类和基础API 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 本章专题与脉络 1. 字符串相关类之不可变字符序列&#xff1a;String 1.1 String的特性 java.lang.String 类代表字符串…

vue之--使用TypeScript

搭配 TypeScript 使用 Vue​ 像 TypeScript 这样的类型系统可以在编译时通过静态分析检测出很多常见错误。这减少了生产环境中的运行时错误&#xff0c;也让我们在重构大型项目的时候更有信心。通过 IDE 中基于类型的自动补全&#xff0c;TypeScript 还改善了开发体验和效率。…