【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 --version
  docker 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环境了。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

恒运资本:2倍牛股突然闪崩,业绩创新高股出炉,最高日赚近2亿

上半年哪些公司净利润有望创前史新高&#xff1f; 2倍牛股单季成绩环比下滑&#xff0c;早盘股价大跳水 A股半年报进入发表高峰期&#xff0c;仅8月7日晚间&#xff0c;就有超30家公司发表半年报和成绩预告状况&#xff0c;超七成净利润同比增加。净利润增速最高的是翔港科技&…

责任链模式(Chain of Responsibility)

责任链模式是一种行为设计模式&#xff0c;允许将请求沿着处理者链进行发送。收到请求后&#xff0c;每个处理者均可对请求进行处理&#xff0c;或将其传递给链上的下个处理者。职责链模式使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接受者之间的耦合关系。…

Activity启动过程详解(Android 12源码分析)

Activity的启动方式 启动一个Activity&#xff0c;通常有两种情况&#xff0c;一种是在应用内部启动Activity&#xff0c;另一种是Launcher启动 1、应用内启动 通过startActivity来启动Activity 启动流程&#xff1a; 一、Activity启动的发起 二、Activity的管理——ATMS 三、…

【AGC】付费下载上架下载后无法安装问题

【关键字】 AGC、付费下载、应用安装 【问题描述】 有开发者反馈用户下载后无法安装&#xff0c;采用未接入sdk&#xff0c;直接勾选付费-产品上架的方案&#xff0c;以前其他产品是能够正常安装的&#xff0c;现在不知道为啥。 报错信息&#xff1a;付费后显示“订单创建失…

Centos 从0搭建grafana和Prometheus 服务以及问题解决

下载 虚拟机下载 https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/17_0 cenos 镜像下载 https://www.centos.org/download/ grafana 服务下载 https://grafana.com/grafana/download/7.4.0?platformlinux …

SpringBoot 2.1.7.RELEASE + Activiti 5.18.0 喂饭级练习手册

环境准备 win10 eclipse 2023-03 eclipse Activiti插件 Mysql 5.x Activiti的作用等不再赘叙&#xff0c;直接上代码和细节 POM <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>…

Matplotlib引领数据图表绘制

Matplotlib引领数据图表绘制 前言图像得组成画图设置 figure设置标题设置坐标轴设置 label 和 legend添加注释使用子图中文乱码解决保存图形显示图形条形图直方图散点图饼状图 总结 前言 在数据科学领域&#xff0c;数据可视化是一种强大的工具&#xff0c;能够将复杂的数据转…

华为推出手机系统云翻新服务:什么是云翻新?如何使用?

华为手机系统云翻新是华为推出的一项功能&#xff0c;旨在通过云服务提供系统翻新的服务。它可以帮助用户对手机的系统进行优化和更新&#xff0c;以提高手机的性能和流畅度。具体而言&#xff0c;华为手机系统云翻新功能提供了免费的云空间&#xff0c;用户可以将手机中的系统…

【C++笔记】C++启航之为C语言填坑的语法

【C笔记】C启航之为C语言填坑的语法 一、命名空间1、为什么要引入命名空间&#xff1f;2、命名空间的基本用法3、展开命名空间4、命名空间的套娃5、命名空间的自动合并 二、缺省参数1、为什么要引入缺省参数&#xff1f;2、缺省参数的基本用法3、缺省的参数必须从右向左4、缺省…

用Python批量复制文件,方法有9种,方便快捷

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 当我们复制一个文件时用复制粘贴就可以了&#xff0c;如果是多个文件呢&#xff1f; 就会很麻烦了&#xff01; 今天给大家介绍一下用Python批量复制文件&#xff0c;方法有九种&#xff01;希望对你有帮助 1. Shutil Copy…

【音视频】vms布署说明

目录 外场布署场景&#xff08;99%&#xff09; 研发实验场景&#xff08;1%&#xff09; 高级玩法 证书安装方法 外场布署场景&#xff08;99%&#xff09; 下面两种场景&#xff0c;为本产品主要应用场景&#xff0c;2023-08-08日后&#xff08;统一所有证书&#xff09;…

macOS下Django环境搭建-docker运行Django

1. macOS升级pip /Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip 2. 卸载Python3.9.5版本 $ sudo rm -rf /usr/local/bin/python3 $ sudo rm -rf /usr/local/bin/pip3 $ sudo rm -rf /Library/Frameworks/Python.framework 3. 安装P…

Vue3自定义简单的Swiper滑动组件-触控板滑动鼠标滑动左右箭头滑动-demo

代码实现了一个基本的滑动功能&#xff0c;通过鼠标按下、鼠标松开和鼠标移动事件来监听滑动操作。 具体实现逻辑如下&#xff1a; 在 onMounted 钩子函数中&#xff0c;我们为滚动容器添加了三个事件监听器&#xff1a;mousedown 事件&#xff1a;当鼠标按下时&#xff0c;设置…

TCP 三次握手,四次挥手

1、三次握手 第一次握手 SYN 等于1&#xff0c;SeqX 第二次握手 SYN等于1 ACK等于1&#xff0c;SeqY&#xff0c;AckX1 第三次SYN等于0 ACK等于1&#xff0c;SeqX1&#xff0c;AckY1 ackRow都是对应请求seqraw&#xff0c;三次握手后&#xff0c;Seq就是服务器前一个包中的ac…

Unity数字可视化学校_昼夜(三)

1、删除不需要的 UI using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class EnvControl : MonoBehaviour {//UIprivate Button btnTime;private Text txtTime; //材质public List<Material> matListnew Li…

解决word打字卡顿问题的方法

❤ 2023.8.5 ❤ 最近整理论文&#xff0c;本来我是wps死忠粉&#xff0c;奈何wps不支持latex公式。。。 无奈用起了word&#xff0c;但是谁想字数稍微多了一点&#xff0c;word就卡得欲仙欲死&#xff0c;打个字过去2s才显示出来&#xff0c;删除的时候都不知道自己删了几个字…

QGIS二次开发三:显示Shapefile

Shapefile 为 OGR 所支持的最重要的数据格式之一&#xff0c;自然可以被 QGIS 加载。那么该如何显示Shapefile呢&#xff1f; 一、先上代码 #include <qgsapplication.h> #include <qgsproviderregistry.h> #include <qgsmapcanvas.h> #include <qgsvec…

每天一道leetcode:剑指 Offer 50. 第一个只出现一次的字符(适合初学者)

今日份题目&#xff1a; 在字符串 s 中找出第一个只出现一次的字符。如果没有&#xff0c;返回一个单空格。 s 只包含小写字母。 示例1 输入&#xff1a;s "abaccdeff" 输出&#xff1a;b 示例2 输入&#xff1a;s "" 输出&#xff1a; 提示 0 …

MySQL流程控制(二十八)

二八佳人体似酥&#xff0c;腰悬利剑斩愚夫&#xff0c;虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了MySQL变量(二十七) ,如果没有看过,请观看上一章 一. 定义条件与处理程序 定义条件是事先定义程序执行过程中可能遇到的问题&#xff0c;处理程序定义了在遇到问题时应…

BIO,NIO,AIO总结

文章目录 1. BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO1.3 代码示例 1.4 总结2. NIO (New I/O)2.1 NIO 简介2.2 NIO的特性/NIO与IO区别1)Non-blocking IO&#xff08;非阻塞IO&#xff09;2)Buffer(缓冲区)3)Channel (通道)4)Selector (选择器) 2.3 NIO 读数据和写数据方式…