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

Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程

Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程

本文将指导如何在 Debian 12 和 Ubuntu 22.04 下安装 Docker 以及 Docker Compose。

PS:本文同时适用于 Debian 11 以及 Ubuntu 20.04

什么是 Docker?
Docker 是一种容器化技术,可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件,而不再需要安装配置各种环境。开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。

什么是 Docker Compose?
传统模式下运维人员需要运行 docker run 来启动各种容器,一旦容器过多,就无法一次性记住所有的运行参数和命令,这时候我们可以使用 Docker Compose 来解决这个问题。

Docker Compose 是一个用于在单个主机上定义和运行多个 Docker 容器的工具。它使用 YAML 文件来配置应用程序的服务,然后使用一个命令就可以创建并启动所有服务。使用 Docker Compose 可以大大简化 Docker 容器的管理和部署,特别是对于具有多个互相依赖的容器的复杂应用。

使用官方源安装 Docker
以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。

首先,安装一些必要的软件包:

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

然后加入 Docker 的 GPG 公钥和 apt 源:

Debian

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

Ubuntu

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

国内机器可以用清华 TUNA 的国内源:

Debian

curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

Ubuntu

curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

然后更新系统后即可安装 Docker CE:

apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

此时可以使用 docker version 命令检查是否安装成功:

root@debian ~ # docker version
Client: Docker Engine - CommunityVersion:           24.0.2API version:       1.43Go version:        go1.20.4Git commit:        cb74dfcBuilt:             Thu May 25 21:52:17 2023OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          24.0.2API version:      1.43 (minimum version 1.12)Go version:       go1.20.4Git commit:       659604fBuilt:            Thu May 25 21:52:17 2023OS/Arch:          linux/amd64Experimental:     truecontainerd:Version:          1.6.21GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8runc:Version:          1.1.7GitCommit:        v1.1.7-0-g860f061docker-init:Version:          0.19.0GitCommit:        de40ad0

如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 www-data 用户加进去:

apt install docker-ce-rootless-extras
sudo usermod -aG docker www-data

安装 Docker Compose
因为我们已经安装了 docker-compose-plugin,所以 Docker 目前已经自带 docker compose 命令,基本上可以替代 docker-compose:

root@debian ~ # docker compose version
Docker Compose version v2.18.1

如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose:
我们可以使用 Docker 官方发布的 Github 直接安装最新版本:

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

此时可以使用 docker-compose version 命令检查是否安装成功:

root@debian ~ # docker-compose version
Docker Compose version v2.18.1

修改 Docker 配置
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):

cat > /etc/docker/daemon.json << EOF
{"log-driver": "json-file","log-opts": {"max-size": "20m","max-file": "3"},"ipv6": true,"fixed-cidr-v6": "fd00:dead:beef:c0::/80","experimental":true,"ip6tables":true
}
EOF

然后重启 Docker 服务:

systemctl restart docker

好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。

相关文章:

  • 容器 - 八大架构的演进
  • 深度学习中的图像处理(基本介绍+示例代码)
  • Python---函数的应用案例(多个)
  • Laravel/Lumen 任务调度简易入门说明
  • Windows系统搭建VisualSVN服务并结合内网穿透实现公网访问
  • 【C++进阶之路】第九篇:特殊类设计
  • STM32 寄存器配置笔记——系统时钟配置 HSE as PLL
  • web:[GXYCTF2019]禁止套娃
  • gwas数据获取如何获取完整的GWAS summary数据(1)------GWAS catalog数据库
  • 【JavaEE初阶】 JavaScript基础语法——贰
  • R语言——taxize(第三部分)
  • Linux 常用命令学习笔记
  • Postgresql常用命令函数
  • 目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】目标视觉检测
  • 二百零七、Flume——Flume实时采集5分钟频率的Kafka数据直接写入ODS层表的HDFS文件路径下
  • 2017届校招提前批面试回顾
  • Odoo domain写法及运用
  • PhantomJS 安装
  • PHP变量
  • python大佬养成计划----difflib模块
  • Rancher如何对接Ceph-RBD块存储
  • React-生命周期杂记
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 大整数乘法-表格法
  • 后端_ThinkPHP5
  • 回顾2016
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 以太坊客户端Geth命令参数详解
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​ssh免密码登录设置及问题总结
  • ​香农与信息论三大定律
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (27)4.8 习题课
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (八十八)VFL语言初步 - 实现布局
  • (二)丶RabbitMQ的六大核心
  • *** 2003
  • .dwp和.webpart的区别
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET 服务 ServiceController
  • .Net 知识杂记
  • .net 中viewstate的原理和使用
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .sdf和.msp文件读取
  • /*在DataTable中更新、删除数据*/
  • ::前边啥也没有
  • @Conditional注解详解
  • [ IOS ] iOS-控制器View的创建和生命周期