Linux中安装部署docker

news2024/9/28 12:39:15

目录

  • 什么是docker
  • 系统环境要求
  • 安装和使用docker

什么是docker

Docker是一个开源的容器化平台,用于帮助开发者更轻松地构建、打包、分发和运行应用程序。它基于容器化技术,利用操作系统层级的虚拟化来隔离应用程序和其依赖的环境。通过使用Docker,开发者可以在不同的主机上快速部署和扩展应用程序,而不需要担心环境配置和依赖问题。

传统的应用程序运行在操作系统之上,直接依赖于操作系统和硬件。在这种情况下,当需要在更多的机器上部署应用程序时,需要重新进行环境配置,并解决因操作系统和硬件差异带来的问题。而Docker则采用了容器化的方法,将应用程序和其依赖的环境打包到一个独立的容器中。这个容器具有自己的文件系统、虚拟网络接口和进程空间,与其他容器和主机隔离开来。

Docker的特点和优势包括:

  1. 灵活性和可移植性:Docker容器是以标准化的方式打包应用程序和依赖,使其可以在不同的环境中部署和运行,而无需重新配置。

  2. 轻量级和高性能:由于Docker容器共用操作系统内核,相比于虚拟机,容器更加轻量级和高性能。它们启动和停止的速度更快。

  3. 可扩展性:通过Docker,可以轻松地在多个主机上创建和管理容器,实现应用程序的水平扩展和负载均衡。

  4. 高度可定制化:Docker提供了灵活的镜像和容器构建方式,可以根据需要自定义容器配置,管理和分享自定义镜像。

  5. 生态系统和资源共享:Docker Hub是一个官方的容器镜像仓库,开发者可以共享自己的镜像,也可以从其他人那里获取已有的镜像。这样能够节省开发时间和资源。

系统环境要求

要安装docker,系统环境需要满足下面的要求:
操作系统版本:Docker适用于多种Linux发行版,如Ubuntu、CentOS等。这里我使用的是CentOS。

内核版本:Docker要求运行在Linux内核3.10或更高版本上。你可以通过以下命令检查你的内核版本:

uname -r

安装和使用docker

在安装docker之前,我们需要先安装必要的管理工具

  1. 首先安装必须的管理工具,使用Linux 终端命令,安装用到的软件包和工具。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

这条 指令,用于安装一些软件包和工具。解释一下每个组件的作用:

  • yum-utils:是一个 Yum 扩展工具集,提供了一些额外的命令和功能,用于管理和维护 Yum 软件包管理器。

  • device-mapper-persistent-data:是 Linux 设备映射器的持久化数据包,提供了设备映射器的持久化功能。

  • lvm2:是逻辑卷管理器(LVM)的软件包,提供了一组用于创建、扩展和管理逻辑卷和卷组的工具。

  • -y 参数用于在安装过程中自动应答所有问题为 “yes”,从而避免安装过程中需要手动确认。这样一来,整个命令将会自动安装指定的软件包和工具。
    在这里插入图片描述

  1. 通过 Yum 添加 Docker 仓库配置,使用以下指令
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

这行代码是一个用于配置 Yum 的命令,它会添加一个新的仓库配置文件到 /etc/yum.repos.d/ 目录中,以便通过 Yum 下载和安装 Docker 软件。每个部分的含义:

  • sudo: sudo 是一个 Linux 命令,允许普通用户以超级用户的身份执行特权命令。
  • yum-config-manager: 这个命令用于配置 Yum 软件包管理器的相关设置。
  • --add-repo: 该选项告诉 yum-config-manager 命令要添加一个新的仓库。
  • https://download.docker.com/linux/centos/docker-ce.repo: 这个参数指定了一个远程仓库的 URL,它是 Docker CE (Community Edition) 在 CentOS 系统上的官方软件仓库。

当我们执行这个命令时,它会下载并添加一个名为 docker-ce.repo 的仓库配置文件到 /etc/yum.repos.d/ 目录中。这样一来,我们就可以使用 Yum 来安装和更新 Docker 软件了。
在这里插入图片描述
当看到下列代码时,代表Docker仓库配置已经添加成功了

grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

这两行的含义是在执行之前的命令 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 后,从指定的 URL 下载了一个名为 docker-ce.repo 的文件,并将其保存到 /etc/yum.repos.d/ 目录中。

  • 第一行 grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo 是一个通知消息,表示正在从指定的 URL 下载一个文件,并将其保存到指定的路径中。

  • 第二行 repo saved to /etc/yum.repos.d/docker-ce.repo 是一个确认消息,表示该仓库配置文件已成功保存到 /etc/yum.repos.d/docker-ce.repo 路径中。

这个过程意味着该 Docker 软件仓库的配置文件已经被正常下载并保存到指定位置,可以继续使用 Yum 来管理和安装 Docker 软件包。

  1. 通过sudo yum install -y docker-ce docker-ce-cli 安装 Docker CE (Community Edition) 软件
sudo yum install -y docker-ce docker-ce-cli

这行代码使用 Yum 安装 Docker CE (Community Edition) 软件的命令。

  • sudo: sudo 是一个 Linux 命令,允许普通用户以超级用户的身份执行特权命令。
  • yum install: 这是 Yum 包管理器的命令,用于安装软件包。
  • -y: 这是一个选项,表示在安装过程中自动应答所有提示,无需手动确认。
  • docker-ce docker-ce-cli: 这是要安装的软件包的名称。docker-ce 是 Docker CE 软件的主要组件,docker-ce-cli 是用于与 Docker 进行交互的命令行工具。

当我们执行这个命令时,Yum 会自动从 Docker CE 软件仓库中下载相关的软件包,然后安装 Docker CE 和 Docker CE CLI 到你的系统中。安装过程中,我们不需要手动确认任何提示,Yum 会自动处理。
在这里插入图片描述
4. 安装完成后,启动Docker,并设置开机自启动

sudo systemctl start docker
sudo systemctl enable docker

上面两行代码是使用 systemctl 命令操作 Docker 服务的命令。

  • sudo systemctl start docker: 这个命令用于启动 Docker 服务,以便开始运行和管理 Docker 容器。
  • sudo systemctl enable docker: 这个命令用于将 Docker 服务设置为开机启动,确保在系统重启后自动启动 Docker。

执行这两个命令后,Docker 服务将会启动,并且在系统重启后也会自动启动。这样,我们就能够在系统中使用 Docker 容器了。

执行sudo systemctl enable docker命令后,返回以下代码

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

这个输出表示成功创建了一个符号链接,将 /usr/lib/systemd/system/docker.service 文件链接到 /etc/systemd/system/multi-user.target.wants/docker.service

在系统中,/etc/systemd/system/multi-user.target.wants/ 目录包含了所有需要在多用户模式下启动的系统服务。通过创建符号链接,即将指向 Docker 服务的配置文件的路径添加到该目录,就能够实现在系统启动时自动启动 Docker 服务。

这通常是在执行 sudo systemctl enable docker 命令后的输出结果,表示已成功设置 Docker 服务为开机启动。

  1. 验证Docker是否安装成功,输入docker --version
    在这里插入图片描述
    能看到版本号,代表Docker安装成功
  2. 升级Docker引擎
sudo yum -y upgrade docker

这行代码的含义是通过yum命令以root权限升级Docker软件包。

  • sudo:以root(超级用户)权限执行后续命令。需要输入当前用户的密码以确认权限。
  • yum:是包管理器,用于在基于RPM(Red Hat Package Manager)的Linux发行版中安装、升级和删除软件包。
  • -y:在运行yum命令时,自动回答所有的提示和确认信息为"yes",以自动进行安装和升级等操作,避免需要手动确认。
  • upgrade:通过yum命令进行软件包的升级操作。
  • docker:指定要升级的软件包的名称,这里是Docker。

请注意,在执行这条命令之前,我们要确保 Docker 引擎的存储库已经被正确地设置并且启用。

  1. 安装docker-compose
 curl -L https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o /usr/bin/docker-compose

这个命令用于下载 Docker Compose 的二进制文件并将其保存到 /usr/bin/docker-compose 这个路径上。

  • curl -L:使用 curl 命令进行下载,-L 参数表示要跟随重定向。
  • https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64:下载的 URL,这是 Docker Compose 版本 2.18.1 的 Linux x86_64 二进制文件的下载链接。
  • -o /usr/bin/docker-compose-o 参数指定下载的文件保存路径为 /usr/bin/docker-compose

这个命令将从指定的 URL 下载 Docker Compose 的二进制文件,并保存在 /usr/bin/docker-compose 这个位置。在运行这个命令之前,我们要具有充足的权限来写入到该目录下。

8.进入以下路径:

cd /usr/bin/
  1. /usr/bin/docker-compose 设置为可执行文件:
sudo chmod +x /usr/bin/docker-compose

这个命令将赋予 /usr/bin/docker-compose 文件执行权限,允许我们在终端中直接运行该文件。这里要确保我们有足够的权限来执行此命令。

  1. 查询docker-compose安装版本:
docker-compose -v

在这里插入图片描述
至此,我们就完成了dock的安装与配置

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

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

相关文章

javaEE进阶 -初识框架

目录 1.为什么要学框架? 框架的优点展示 2、项目的开发 2.1 Servlet 项目的开发 2.2 Spring Boot 项目开发 3 、Spring Boot编写代码 4、 Spring Boot 运行项目 5、验证程序 6、发布项目 主要讲解 四个框架。 1、Spring 2、Spring Boot 3、Spring NVC 4、…

别只盯着Docker了,这十大容器运行时错过后悔

文章目录 一、Docker二、Containerd三、CRI-O四、Firecracker五、gVisor六、Kata七、Lima八、Lxd九、rkt十、runC如何选择适合自己的容器运行时? MCNU云原生,文章首发地,欢迎微信搜索关注,更多干货,第一时间掌握&#…

Apikit 自学日记:数据结构

您可以将API文档中的重复部分提取出来成为数据结构,方便其他文档中复用。当数据结构发生改变时,所有引用了该数据结构的API文档会同步发生改变。 创建数据结构 进入数据结构管理页面,点击 添加数据结构 按钮,输入相关内容并保存…

XXL-JOB任务调度

简介: XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 官网:https://www.xuxueli.com/xxl-job/ 以下业务场景可用任务解决 某电商平台需要每天上午10点,下午3点,晚上8点发…

2023 高质量 Java 面试题集锦:高级 Java 工程师面试八股汇总

人人都想进大厂,当然我也不例外。早在春招的时候我就有向某某某大厂投岗了不少简历,可惜了,疫情期间都是远程面试,加上那时自身也有问题,导致屡投屡败。突然也意识到自己肚子里没啥货,问个啥都是卡卡卡卡&a…

炫技亮点 Websocket集群解决方案汇总

文章目录 问题方案方案一:~~Session共享~~(不可行)方案二:负载均衡器(状态路由)方案三:广播机制(异步方式 - 建议)方案四:路由转发(同步方式&…

【JS经验分享】你真的会写JS吗?满满干货,建议读三遍(2)

大家好,最近准备总结一下JS的经验,分享分享,有不对的欢迎讨论哈~ JS作为前端的基础技能,每一位前端开发都要运用熟练,但你真的会写JS吗?js全称JavaScript,是运行在浏览器上的脚本语言&#xff0…

【高危】Nuxt.js <3.4.3 远程代码执行漏洞(POC公开)

漏洞描述 Nuxt.js(简称 Nuxt)是一个基于 Vue.js 的通用应用框架,用于构建服务端渲染的应用程序(SSR)和静态生成的网站。 Nuxt.js 3.4.3之前版本中的 test-component-wrapper 组件的动态导入函数存在代码注入漏洞,当服务器在开发…

Java集合流式编程

一、简介 1、什么是集合流式编程 集合流式编程(Stream API)是Java 8引入的一个功能强大的特性,它提供了一种更简洁、更高效的方式来操作集合数据。它的设计目标是让开发者能够以一种更声明式的风格来处理集合数据,减少了显式的迭…

Ubuntu部署jmeter与ant

为了整合接口自动化的持续集成工具,我将jmeter与ant都部署在了Jenkins容器中,并配置了build.xml 一、ubuntu部署jdk 1:先下载jdk-8u74-linux-x64.tar.gz,上传到服务器,这里上传文件用到了ubuntu 下的 lrzsz。 ubunt…

WordPress 备份插件 BackUpWordPress

WordPress备份是一件必不可少的事情,毕竟自己辛辛苦苦花了很多时间精力写得博客,经验总结,必须保留传承。WordPress备份可以在发生灾难性情况(比如劫持或意外锁定)下迅速恢复,确保了网站安全。 BackUpWord…

揭示不断增长的预切蔬菜市场:深入研究行业驱动因素和挑战

随着现代社会的快节奏和人们生活压力的增加,越来越多的人选择预制菜作为饮食解决方案,预制菜已经成为餐饮行业的新兴赛道。预制菜的优点包括方便快捷、卫生安全、节省时间、质量可靠,以及丰富的菜品选择和灵活的烹饪和食用方式,满…

基于SpringCloud微服务流动资金贷款业务系统设计与实现

一、引言 由于传统的贷款业务系统并不能够顺应时代的变化,同时在一定程度上对业务发展进行了限制,所以为了适应时代的发展,信息贷款业务应该能够被产品化、丰富化,同时还需要制定一套特定的流程来满足新时代用户的需求。流程化的规范管理是当今银行业务发展的必然趋势,研究并开…

基于Stable Diffusion的2D游戏关卡生成【实战】

接下来的几篇文章将与常规主题有所不同(这是在从事通用机器人技术的职业中吸取的教训)。 相反,我决定利用我的一些新空闲时间 1 边做边学,并使用所有酷孩子都在谈论的一些很酷的新 ML。 推荐:用 NSDT设计器 快速搭建可…

分割回文串-ii

分割回文串-ii 题目链接:分割回文串-ii 思路:分割字符串s,使得子串都是回文串,最后获得最小分割次数。那么我们可以不断把字符串缩短,判断子串是否可以被分割成回文串,并且最小分割次数。这就是子问题分割…

贝叶斯算法人生

哈喽大家好,我是咸鱼 之前看到过耗子叔写的一篇文章《程序算法与人生选择》,这篇文章中耗子叔结合计算机中的经典算法(排序、动态规划等等),让大家在人生道路的选择上获得了一些启发 我最近看了一些关于贝叶斯思想的…

StringBuilder和StringBuffer

StringBuilder和StringBuffer 目录 StringBuilder和StringBuffer特点常见方法练习:测试字符串连接StringBuilder和StringBuffer的区别 特点 封装了char[]数组 是可变的字符序列 提供了一组可以对字符内容修改的方法 常用append()来代替字符串做字符串连接”” 内部…

智慧文旅VR全景展示,深度VR沉浸式体验

导语: 智慧文旅VR全景展示为我们带来了一种独特的旅行体验,让我们可以穿越时空、身临其境地感受历史、艺术和自然的魅力。 在这个数字化时代,智慧文旅VR全景展示成为了旅游界的新宠,它让我们能够以一种前所未有的方式探索世界&am…

看完这篇 教你玩转渗透测试靶机vulnhub—Corrosion:2

Vulnhub靶机Corrosion:2渗透测试详解 Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集:②:Tomcat msf 上传漏洞拿到shell:③:look越权…

何时使用Kafka而不是RabbitMQ

Kafka 和 RabbitMQ 都是流行的开源消息系统,它们可以在分布式系统中实现数据的可靠传输和处理。Kafka 和 RabbitMQ 有各自的优势和特点,它们适用于不同的场景和需求。本文将比较 Kafka 和 RabbitMQ 的主要区别,并分析何时使用 Kafka 而不是 R…