【Ubuntu】安装docker,docker compose 以及部署一个docker应用

大家好!在过去,已经分享了很多有关通过Docker部署应用的内容。今天,我将为大家详细介绍如何在Ubuntu系统上部署最新的Docker平台。

Docker是什么

Docker是一个开源的容器化平台,它允许您将应用程序及其所有依赖项打包到称为容器的可移植单元中。
使用Docker,您可以在不同的环境中轻松部署、交付和运行应用程序。每个Docker容器都是一个独立且隔离的运行环境,它们共享基本操作系统的内核,但在容器内部则拥有自己的文件系统、进程和资源。这使得Docker容器具备轻量、快速启动和高度可移植的特点。
相比于传统的虚拟化技术,Docker更加轻量级和灵活,它使开发者能够快速构建、测试和部署应用,而无需担心环境的差异。通过使用Docker,您可以实现应用程序的快速迁移、弹性伸缩和持续集成部署等优势。
总而言之,Docker为开发者和运维团队提供了便捷的工具和环境,使得应用程序的开发、交付和管理变得更加高效、可靠和可移植。

安装Docker

系统要求

在安装Docker Engine之前,您需要以下Ubuntu版本的64位版本之一:

  • Ubuntu Lunar 23.04
  • Ubuntu Kinetic 22.10
  • Ubuntu Jammy 22.04(LTS)
  • Ubuntu Focal 20.04(LTS)

Ubuntu的Docker Engine兼容x86_64(或amd64)、armhf、arm64、s390x和ppc64le(也称为ppc64el)架构。

卸载旧版本

在安装Docker Engine之前,确保卸载任何与之冲突的软件包。以下是需要卸载的非官方软件包列表:

  • docker.io
  • docker-compose
  • docker-doc
  • podman-docker

为了避免与官方版本的Docker Engine产生冲突,必须先卸载这些软件包。此外,Docker Engine依赖于containerdrunc。Docker Engine将这些依赖项捆绑在一个包中:containerd.io。如果您先前安装了containerdrunc,请将其卸载,以避免与Docker Engine捆绑版本发生冲突。

运行以下命令以卸载所有冲突的软件包:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

apt-get可能会报告您未安装这些软件包。

卸载Docker时,存储在/var/lib/docker/中的镜像、容器、卷和网络不会自动删除。如果您希望进行干净的安装,并且希望清理现有数据,可运行以下命令。

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

使用apt存储库进行安装

更新apt软件包索引并安装所需的包

运行以下命令来更新apt软件包索引并安装所需的包:

sudo apt update
sudo apt install ca-certificates curl gnupg

添加 Docker 的阿里云 GPG 密钥

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

验证您现在是否拥有带有指纹的密钥

sudo apt-key fingerprint 0EBFCD88显示:
pub   rsa4096 2017-02-22 [SCEA]9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

设置阿里云仓库

# 定义文件路径和内容
file_path="/etc/apt/sources.list.d/archive_uri-https_mirrors_aliyun_com_docker-ce_linux_ubuntu-jammy.list"
content="deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable\ndeb-src [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable"
# 将内容写入文件
sudo echo -e "$content" > "$file_path"
sudo apt update

安装Docker Engine

安装最新版本Docker Engine、containerd和Docker Compose,请运行以下命令:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完成后,检查Docker版本,Docker Compose版本,请运行以下命令:

  docker --versiondocker compose version
root@SH-01:/home# docker --version
Docker version 24.0.5, build ced0996
root@SH-01:/home# docker compose version
Docker Compose version v2.20.2

至此,您就成功安装了Docker Engine,并可以使用Docker和Docker Compose进行容器化应用程序的管理。接下来我们不是第一个Docker应用—Portainer CE

安装Portainer CE

Portainer CE是一个开源的图形化管理界面,用于管理Docker环境。以下是安装Portainer CE的步骤:

  1. 创建一个名为portainer_data的持久化存储卷,用于存储Portainer的数据:

    docker volume create portainer_data
    
  2. 使用以下命令启动Portainer CE容器:

    docker run -d -p 9000:9000 --name=portainer --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
    

    这将下载并运行最新版本的Portainer CE容器。端口9000将被映射到主机上的9000端口,您可以通过访问http://localhost:9000来访问Portainer CE的管理界面。

  3. 打开您的Web浏览器并访问http://localhost:9000。在首次访问时,您将被要求设置管理员用户名和密码,并选择连接到本地Docker环境。

  4. 完成设置后,您将可以通过Portainer CE管理您的Docker环境,包括容器、镜像、网络和卷等。

现在,您已成功安装和设置了Portainer CE,可以开始使用它来管理您的Docker环境了。
在这里插入图片描述

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

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

相关文章

CH343 USB转串口芯片资料下载(合集)

1、产品手册 CH343DS1.PDF - 南京沁恒微电子股份有限公司CH343技术手册&#xff0c;USB转单串口芯片&#xff0c;支持最高6M波特率&#xff0c;串口信号支持1.8~5V&#xff0c;内置晶振。CH343使用系统集成的CDC驱动或厂商驱动。厂商驱动支持完整串口功能和更高波特率。https:…

基于STM32微控制器的物联网(IoT)节点设计与实现

基于STM32微控制器的物联网(IoT)节点的设计和实现。我们讨论物联网节点的基本概念和功能,并详细介绍了STM32微控制器的特点和优势。然后,我们将探讨如何使用STM32开发环境和相关的硬件模块来设计和实现一个完整的物联网节点。最后,我们将提供一个示例代码,展示如何在STM3…

【24择校指南】南京大学计算机考研考情分析

南京大学(A) 考研难度&#xff08;☆☆☆☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分数人数统计&#xff09;、院校概况、23初试科目、23复试详情、参考书目、各科目考情分析、各专业考情分析。 正文2178字&#xff0c;预计阅读&#xff1a;6分…

Mr. Cappuccino的第59杯咖啡——简单手写SpringIOC框架

简单手写SpringIOC框架 环境搭建基于XML方式项目结构项目代码运行结果 基于注解方式项目结构项目代码运行结果 简单手写SpringIOC框架核心原理基于XML方式原理项目结构项目代码运行结果 基于注解方式原理项目结构项目代码运行结果 环境搭建 基于XML方式 项目结构 项目代码 p…

JSP实训项目设计报告—MVC简易购物商城

JSP实训项目设计报告—MVC简易购物商城 文章目录 JSP实训项目设计报告—MVC简易购物商城设计目的设计要求设计思路系统要求单点登录模块商品展示模块购物车展示模块 概要设计Model层View层Controller层 详细设计Model层View层登录界面系统主界面 Controller层 系统运行效果项目…

kafka是有序的吗?如何保证有序?

首先&#xff0c;Kafka无法保证消息的全局有序性&#xff0c;这是因为Kafka的设计中允许多个生产者并行地向同一个主题写入消息。而且&#xff0c;一个主题可能会被划分为多个分区&#xff0c;每个分区都可以在独立的生产者和消费者之间进行并行处理。因此&#xff0c;生产者将…

【MongoDB】数据库、集合、文档常用CRUD命令

目录 一、数据库操作 1、创建数据库操作 2、查看当前有哪些数据库 3、查看当前在使用哪个数据库 4、删除数据库 二、集合操作 1、查看有哪些集合 2、删除集合 3、创建集合 三、文档基本操作 1、插入数据 2、查询数据 3、删除数据 4、修改数据 四、文档分页查询 …

CSP复习每日一题(四)

树的重心 给定一颗树&#xff0c;树中包含 n n n 个结点&#xff08;编号 1 ∼ n 1∼n 1∼n&#xff09;和 n − 1 n−1 n−1条无向边。请你找到树的重心&#xff0c;并输出将重心删除后&#xff0c;剩余各个连通块中点数的最大值。 重心定义&#xff1a; 重心是指树中的一…

试图将更改推送到 GitHub,但是远程仓库已经包含了您本地没有的工作(可能是其他人提交的修改)

这通常是由于其他人或其他仓库推送到了相同的分支上&#xff0c;导致您的本地仓库和远程仓库之间存在冲突。 错误信息&#xff1a; To github.com:8upersaiyan/CKmuduo.git ! [rejected] main -> main (fetch first) error: failed to push some refs to github.com:8upers…

元宇宙时代来临,AI数字人的应用方式有哪些?

在数字化背景下&#xff0c;元宇宙的时代已经来临&#xff0c;当你看到网络新闻上各形各色的虚拟数字人时&#xff0c;你是不是也有些都心动呢&#xff1f;与真人相比&#xff0c;AI虚拟数字人还具有成本低廉并且不受时间、空间限制的特点&#xff0c;数字人的使用场景正在逐渐…

React集成tinymce插件

目录 一、Tinymce介绍 二、React集成Tinymce 1、安装tinymce/tinymce-react组件 2、React中引用 三、如何配置中文语言包 1、下载中文包 2、把语言文件放入tinymce 3、tinymce配置项中配置语言 一、Tinymce介绍 官网&#xff1a;The Most Advanced WYSIWYG Editor | T…

【脚踢数据结构】深入理解栈

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言,Linux基础,ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的一句鸡汤&#x1f914;&…

数据清理在数据科学中的重要性

什么是数据清理&#xff1f; 推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 在数据科学中&#xff0c;数据清理是识别不正确数据并修复错误的过程&#xff0c;以便最终数据集可供使用。错误可能包括重复字段、格式不正确、字段不完整、数据不相关或不准…

web集群学习:源码安装nginx配置启动服务脚本、IP、端口、域名的虚拟主机

目录 1、源码安装nginx&#xff0c;并提供服务脚本。 2、配置基于ip地址的虚拟主机 3、配置基于端口的虚拟主机 4、配置基于域名的虚拟主机 1、源码安装nginx&#xff0c;并提供服务脚本。 1、源码安装会有一些软件依赖 &#xff08;1&#xff09;检查并安装 Nginx 基础依赖…

数据结构刷题训练——链表篇(二)

目录 前言 1.题目一&#xff1a;链表分割 1.1 思路 1.2 分析 1.3 题解 2. 题目二&#xff1a;相交链表 2.1 思路 2.2 分析 2.3 题解 3. 题目三&#xff1a;环形链表 3.1 思路 3.2 分析 3.3 题解 总结 前言 本期继续分享链表相关的OJ题目&#xff0c;在这个专栏博客…

【论文阅读】EULER:通过可扩展时间链接预测检测网络横向移动(NDSS-2022)

作者&#xff1a;乔治华盛顿大学-Isaiah J. King、H. Howie Huang 引用&#xff1a;King I J, Huang H H. Euler: Detecting Network Lateral Movement via Scalable Temporal Graph Link Prediction [C]. Proceedings 2022 Network and Distributed System Security Symposium…

UDP通信实验、广播与组播、本地套接字

文章目录 流程函数应用广播应用 组播&#xff08;多播&#xff09;本地套接字应用 流程 函数 返回值&#xff1a; 成功&#xff0c;返回成功发送的数据长度 失败&#xff0c;-1 返回值&#xff1a; 成功&#xff0c;返回成功接收数据长度 失败&#xff0c;-1 应用 广播 应用 …

MongoDB文档-进阶使用-MongoDB索引-createindex()与dropindex()-在MongoDB中使用正则表达式来查找

阿丹&#xff1a; 之前研究了MongoDB的基础增删改查。在学会基础的数据库增删改查肯定是不够的。这个时候就涉及到了数据库搜索的时候的效率。需要提高数据的搜索效率。 MongoDB索引 在所以数据库中如果没有数据索引的时候。如果需要查找到一些数据。都会去主动扫描所有可能存…

mybatis-plus的逻辑删除的坑

一旦在逻辑字段上加了TableLogic逻辑删除的配置&#xff0c;并且使用mybatis-plus自带的方法时&#xff08;如果自己用xml写SQL不会出现下面的情况&#xff09; 查询、修改时会自动排除逻辑删除的数据 当使用mybatis-plus自带的查询方法时&#xff0c;就不用每次查询的时候跟…

Blazor 简单组件(1):B_Icon开发

文章目录 前言ICON开发使用 前言 Blazor 简单组件(0)&#xff1a;简单介绍 ICON开发 <i class"Type" style"font-size:(Size)px;color:Color;"></i>code {/// <summary>/// icon类型/// </summary>[Parameter]public string Typ…