当前位置: 首页 > article >正文

Ubuntu安装docker 、docker-compose

一、背景介绍

Docker 是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。Docker 使得开发、部署和运行应用程序变得非常高效,因此在软件开发和运维领域得到了广泛的应用。

Docker - Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许用户通过一个 YAML 文件来配置应用程序的服务、网络和卷等,然后使用一个命令即可创建和启动所有服务。Docker - Compose 使得管理复杂的多容器应用变得简单高效,是 Docker 生态系统中不可或缺的一部分。

Ubuntu 是一种基于 Linux 的操作系统,它具有稳定、安全、开源等特点,是服务器和桌面环境中非常受欢迎的操作系统之一。在 Ubuntu 上安装 Docker 可以充分发挥 Docker 的优势,为应用程序的开发和部署提供强大的支持。

二、Docker安装

1.更新软件包

sudo apt update && sudo apt upgrade

执行上面指令进行软件包更新,遇到所有问题都 Y

2.安装docker依赖

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

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

3.添加Docker官方GPG密钥

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

添加成功后,出现 OK 字样即可。

4.添加Docker软件源

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

执行以上命令,添加Docker源,添加成功后即可。

5.安装docker

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

执行以上命令,正式安装。

6.配置用户组(可选)

sudo usermod -aG docker {用户名}

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

7.启动Docker

sudo systemctl start docker

执行以上命令启动

8.测试是否启动成功

docker ps -a

出现 以下字样,说明docker 安装成功,并且成功启动。

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

9.收尾安装 Docker 工具

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

执行安装成功即可。

10.重启Docker

service docker restart

三、docker-compose安装

1.下载 docker-compose 安装包

sudo curl -L https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

sudo wget "https://pc.clougence.com/docker-compose-1.28.3" -O /usr/local/bin/docker-compose

执行以上任意一条指令进行下载

2.授权 docker-compose

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

最后成功安装完所有工作。


http://www.kler.cn/a/508310.html

相关文章:

  • 【postgres】sqlite格式如何导入postgres数据库
  • 基于微信小程序的电子点菜系统设计与实现(KLW+源码+讲解)
  • 精选算法合集
  • 使用 ChatGPT 生成和改进你的论文
  • TinyEngine v2.1版本发布:全新的区块方案和画布通信方案,打造更强力的可拓展低代码引擎
  • 基于微信小程序的摄影竞赛系统设计与实现(LW+源码+讲解)
  • Github 2025-01-17 Java开源项目日报 Top8
  • Python wxPython 库实现文本框与按钮交互示例
  • Android wifi列表中去自身的热点
  • 代码合并冲突解决push不上去的问题
  • 《初始Linux:多平台兼容的强者,无缝衔接各类设备的桥梁 》
  • 【CC2640R2F】香瓜CC2640R2F之SPI读写W25Q80
  • 【老白学 Java】线程的并发问题(二)
  • JDK 8 - 新日期格式化类 DateTimeFormatter 使用
  • Spring boot框架下的RabbitMQ消息中间件
  • Spring声明式事务
  • 第22篇 基于ARM A9处理器用汇编语言实现中断<四>
  • “AI智能防控识别系统:守护安全的“智慧卫士”
  • 【进程与线程】进程的基础
  • 深度学习-88-大语言模型LLM之基于langchain的检索链
  • 【网络协议】【http】【https】AES-TLS1.2
  • 软考信安24~工控安全需求分析与安全保护工程
  • AXIOS的引入和封装
  • 对MySQL滴MVCC理解(超详细)
  • 【蓝桥杯选拔赛真题62】C++求和 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解
  • “AI开放式目标检测系统:开启智能识别新时代