Ubuntu下 Docker、Docker Compose 的安装教程

news2024/11/19 0:30:12
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker Compose是用于定义和运行多容器docker应用程序的工具,compose 通过一个配置文件来管理多个 docker容器。可以使用 docker-compose.yml脚本来 启动、停止、重启应用,进行docker容器的编排和管理。但是 docker compose并没有实现容器的负载均衡,还需要借助其他工具实现。

下面以 CentOS 系统为例,介绍如何安装 Docker 以及 Docker Compose

安装 Docker

最详细的ubuntu 安装 docker教程_ubuntu docker_软件测试大空翼的博客-CSDN博客

1.系统版本

本文以Ubuntu20.05系统为例安装docker,Ubuntu官方下载地址。

2.检查卸载老版本docker

ubuntu下自带了docker的库,不需要添加新的源。

但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。

注:docker的旧版本不一定被称为docker,docker.io 或 docker-engine也有可能,所以我们卸载的命令为:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

如果不能正常卸载,出现如下情况,显示无权限时,需要添加管理员权限才可进行卸载:

我们就需要使用sudo apt-get remove docker docker-engine docker.io containerd runc命令使用root权限来进行卸载。

3.安装步骤

更新软件包

在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本:

sudo apt update
sudo apt upgrade

安装docker依赖

Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖:

sudo apt-get install ca-certificates curl gnupg lsb-release

添加Docker官方GPG密钥

执行以下命令来添加Docker官方的GPG密钥:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

结果如下:

添加Docker软件源

执行以下命令来添加Docker的软件源:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

注:该命令需要使用root权限

安装docker

执行以下命令来安装Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io

配置用户组(可选)

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:

sudo usermod -aG docker $USER

注:重新登录才能使更改生效。

4.运行docker

验证安装

我们可以通过启动docker来验证我们是否成功安装。命令如下:

sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker

安装工具

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

重启docker

sudo systemctl restart docker

验证是否成功

sudo docker run hello-world

运行命令后,结果如下:

因为我们之前没有拉取过hello-world,所以运行命令后会出现本地没有该镜像,并且会自动拉取的操作。

查看版本

我们可以通过下面的命令来查看docker的版本

sudo docker version

结果如下:

查看镜像

上面我们拉取了hello-world的镜像,现在我们可以通过命令来查看镜像,命令如下:

sudo docker images

结果如下图:

出现上述情况,即表示我们成功在Ubuntu系统上安装了docker。

二、安装 Docker Compose

安装方式一(use)

docker官网地址:Overview of installing Docker Compose | Docker Docs

1、检查本地docker版本

docker version

2、docker-compose版本选择

根据docker版本选择对应的docker-compose版本。

docker-compose官网地址:Compose file version 3 reference | Docker Docs

3、安装

官网安装地址:Install Compose standalone | Docker Docs

# github: https://github.com/docker/compose/releases/tag/v2.20.2 
# 国内下载地址:https://gitee.com/smilezgy/compose/releases/tag/v2.20.2
sudo curl -SL \
https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 \
-o /usr/local/bin/docker-compose

# 或者手动下载, 上传到服务器后执行如下指令(use)
# 在 docker-compose-linux-x86_64 文件同一目录下执行
sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose

4、添加可执行权限

chmod +x /usr/local/bin/docker-compose

5、测试

[root@bogon bin]# docker-compose --version
Docker Compose version v2.20.2

如果需要删除则执行如下命令

rm -rf /usr/local/bin/docker-compose

6、Docker Compose运行项目

要运行Docker Compose,需要在项目目录中拥有一个docker-compose.yml文件。完成以下步骤:

  1. 打开终端或命令提示符。
  2. 导航到存放docker-compose.yml文件的目录。
  3. 运行以下命令启动在compose文件中定义的容器:
docker-compose up
默认情况下,此命令将启动compose文件中指定的所有服务,并在终端中显示它们的日志。
要使用分离模式(在后台)运行容器,可以添加 -d标志:
# 此命令会启动容器并将控制返回给终端。
docker-compose up -d
请注意,如果是第一次运行 docker-compose up,它将从Docker Hub拉取任何必要的Docker镜像,然后再启动容器。

安装方式二

(1)执行如下命令安装 pip3

yum -y install python3-pip
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

(2)执行如下命令安装 docker-compose

pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple

(3)安装完毕后执行如下命令查看版本:

docker-compose version

(4)控制台显示如下则表示安装成功:

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

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

相关文章

springboot班级综合测评管理系统springboot005

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

优思学院|六西格玛与敏捷管理两者有何不同?

如果你正在寻找提高组织流程和降低缺陷或错误的方法,六西格玛和敏捷是两种你可能会考虑的方法。这两种方法有着不同的重点和应用领域。在这篇文章中,我们将深入研究六西格玛和敏捷,并探讨它们之间的差异。 什么是六西格玛? 六西…

MySQL数据库索引优化难点与面试点

MySQL数据库索引优化难点与面试点 什么是MySQL索引? 索引的MySQL官方定义:索引是帮助MySQL快速获取数据的数据结构。 动力节点原文: MysQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 MysQL在存储数据之外,数据…

Qt5开发及实例V2.0-第二章Qt模板库工具类及控件

Qt5开发及实例V2.0-第二章Qt模板库工具类及控件 第2章 Qt 5模板库、工具类及控件2.1 字符串类2.1.1 操作字符串2.1.2 查询字符串数据2.1.3 字符串的转换 2.2 容器类2.2.1 QList类、QLinkedList类和QVector类2.2.2 QMap类和QHash类 2.3 QVariant类2.4 算法及正则表达式2.4.1 Qt …

Spring编程常见错误50例-Spring Bean依赖注入常见错误(下)

Value没有注入预期的值 问题 对于Value可以装配多种类型的数据: 装配对象: Value("#{student}") private Student student;Bean public Student student(){Student student createStudent(1, "xie");return student; }装配字符…

【Nuxt3】Vue3 + Element-plus 打包后报错 @popperjs/core

问题: 更新 Element-plus 后,运行时需要安装 popperjs/core 依赖。 如果正常执行 npm install popperjs/core ,那么,打包时,就会出现下面报错。 Named export ‘placements’ not found. The requested module ‘poppe…

Python | 为FastAPI后端服务添加API Key认证(分别基于路径传参和header两种方式且swagger文档友好支持)

文章目录 01 前言02 路径传参方式添加API Key2.1 完整代码2.2 请求示例2.3 swagger文档测试 03 请求头Header方式传入API Key(推荐)3.1 完整代码3.2 请求示例3.3 swagger文档测试 01 前言 FastAPI,如其名所示,是一个极为高效的框…

云计算的未来:云原生架构和自动化运维的崭露头角

文章目录 云计算的演进云原生架构1. 容器化2. 微服务3. 自动化部署和扩展4. 故障恢复 自动化运维1. 基础设施即代码(IaC)2. 运维自动化示例:使用Ansible自动化配置管理 3. 自动化监控和报警 未来展望1. 更多的自动化2. 多云混合云3. 边缘计算…

华为+苹果的“科技春晚”背后,“自主创新+实在技术”遥遥领先!

过去的24小时里,科技春晚迎来“双主角”:12日下午,华为发布会,13日凌晨,苹果发布会。 尽管苹果一向以其创新和高端的形象而闻名,但与昔日苹果发布会后有关新品的词条霸屏微博热搜不同,当天在发…

初步了解华为的MTL(市场到线索)流程的基本概念和来龙去脉

前两天,有读者给华研荟发私信,说在学习华为资料的时候看到华为有一个MTL流程,想了解下这个MTL流程和LTC流程有什么区别?既然有了LTC流程,为什么还要MTL流程呢? 为此,今天华研荟给大家简要介绍华…

让电子制造厂提高生产率的方法,学会受用终生!

在现代工业领域,工厂的生产运营离不开复杂的设备和关键的基础设施。然而,工厂在日常运营中常常面临着各种风险,其中之一就是水浸事件。 水浸监控不仅仅是一种反应性的措施,更是一种预防性的安全策略。通过使用高度先进的传感技术和…

前端使用H5中draggable实现拖拽排序效果 两种实现效果

文章目录 一、实现效果①1、实现代码2、效果演示 二、实现效果②1.实现代码2.效果演示 一、实现效果① 将一个节点拖到另一个节点之前或之后 1、实现代码 <!DOCTYPE html> <style>* {padding: 0;margin: 0;}body {display: flex;width: 100%;height: 100vh;just…

Matlab中关于 : 的使用

设&#xff0c;mat 这个矩阵的规格是 n*m&#xff0c;temp mat( i , j ) 矩阵的行和列的下标从1开始 在这个矩阵中&#xff0c;a:b 代表的含义是范围是从 a--b 则&#xff0c;当 a 和 b 被省略时&#xff0c;代表的范围就是最大范围&#xff08;1--n&#xff09; or &#…

卡奥斯第二届1024程序员节重磅预告!

一场属于程序员的狂欢! 第二届卡奥斯1024程序员节重磅来袭。 提前做好活动攻略&#xff0c;欢欢喜喜大奖抱回家&#xff01; 本次活动设置4个活动分会场: 低代码分会场、开源分会场、知识分会场和产品分会场&#xff0c;共12个奖项&#xff0c;1100多个奖品&#xff0c;雷神9…

IP归属地在金融行业的应用场景

IP归属地查询在各大行业当中的利用率可以说非常的高了&#xff0c;提供了各种的保障&#xff0c;比如安全保障、数据保障、性能保障等等。今天我就来详细说一说IP归属地在金融行业的应用场景有哪些&#xff1f; 用途一&#xff1a;通过解析用户IP地址所处的区县位置与表单填写位…

Re-Learn Linux Part1

1. Linux的目录结构 在Linux文件系统中有两个特殊的目录&#xff1a; 一个用户所在的工作目录&#xff0c;也叫当前目录&#xff0c;可以使用一个点 . 来表示&#xff1b;另一个是当前目录的上一级目录&#xff0c;也叫父目录&#xff0c;可以使用两个点 .. 来表示。 . &#…

关于激光探测器光斑质心算法在FPGA硬件的设计

目录 0引言 1CCD采集图像质心算法 2基于FPGA的图像质心算法 3仿真结果与分析 4结论 0引言 在一些姿态检测的实际应用中&#xff0c;需要在被测对象上安装激光探测器[1]&#xff0c;利用CCD相机捕捉激光光斑来检测观测对象的实际情况&#xff0c;光斑图像质心坐标的提取是图…

机器学习——SVM(支持向量机)

0、前言&#xff1a; SVM应用&#xff1a;主要针对小样本数据进行学习、分类和回归&#xff08;预测&#xff09;&#xff0c;能解决神经网络不能解决的过学习问题&#xff0c;有很好的泛化能力。&#xff08;注意&#xff1a;SVM算法的数学原理涉及知识点比较多&#xff0c;所…

grep多行匹配以及一些问题

测试文本, a.txt 123 456789这里是简单的文本 使用grep多行匹配 grep -Pzo "123\s456" a.txt-P: 启用Perl正则表达式模式。 -z: 允许多行匹配&#xff0c;即使匹配跨越了换行符的行。 -o: 只输出匹配的部分。 这里能匹配到 123 456但是有的时候也匹配不到&#…

表演复读生的王炸班型——薪火表演·独角兽班开课介绍

我们拥有同样的目标——大院名校 薪火独角兽班计划 最懂复读生的地方 不想上大课&#xff0c;只想1对1? 录制费用高&#xff0c;不愿增加父母经济压力? 稿件烂大街? 专业没人管? 这些都不是问题! 一站式解决复读生难题 选薪火独角兽班&#xff01; ---------ifire.ar…