Linux(Ubuntu)系统安装Docker与Docker Compose完整指南

本文是为需要在Ubuntu系统部署容器服务的开发者准备的详细教程。我们将分两个主要部分讲解:Docker引擎的标准安装流程和Docker Compose的配置方法。所有操作均在终端执行,建议使用Ubuntu 18.04及以上版本。

一、Docker引擎安装全流程
(总耗时约5-10分钟,需root权限)

1. 系统环境准备
在开始安装前,建议先更新软件源并升级现有软件包:
 

sudo apt-get update       # 刷新软件源索引
sudo apt-get upgrade -y   # 自动升级所有可更新软件包



注意:若系统提示需要重启(如内核升级),建议执行`sudo reboot`重启后再继续

2. 安装必备依赖组件
 

sudo apt-get install -y \ca-certificates \    # SSL证书支持curl \               # 网络传输工具gnupg \             # 加密签名工具lsb-release         # 系统版本信息工具



这些依赖确保后续安装过程的安全性和兼容性

3. 官方脚本自动化安装
推荐使用Docker官方提供的一键安装脚本:
 

curl -fsSL https://test.docker.com -o test-docker.sh  # 下载安装脚本
sh test-docker.sh                                    # 执行安装程序



说明:此脚本会自动完成以下工作:
- 添加Docker官方GPG密钥
- 设置稳定版仓库
- 安装containerd运行时
- 配置docker-ce核心组件
- 创建docker用户组

4. 配置国内镜像加速(关键步骤)
由于默认仓库访问较慢,需配置镜像源加速:
 

sudo vim /etc/docker/daemon.json  # 使用nano编辑器可替换为sudo nano



输入以下内容(建议保留3-4个镜像源):
 


{"registry-mirrors": ["https://docker.m.daocloud.io",    # 道克镜像"https://docker.imgdb.de",         # 德国镜像"https://docker-0.unsee.tech",     # 美国西海岸镜像"https://docker.hlmirror.com"      # 香港镜像]
}保存后按Esc输入:wq退出vim

5. 重启服务使配置生效
 

sudo systemctl daemon-reload     # 重载服务配置
sudo systemctl restart docker    # 重启docker服务
sudo systemctl enable docker     # 设置开机自启(可选)


验证服务状态:

`systemctl status docker`应显示active(running)

6. 功能验证测试
执行基础镜像拉取测试:
 

sudo docker pull hello-world    # 下载测试镜像
sudo docker run hello-world     # 运行测试容器

成功输出"Hello from Docker!"即表示安装成功

二、Docker Compose安装指南
(Docker官方推荐使用插件形式安装)

1. 执行安装命令
 

sudo apt install -y docker-compose-plugin  # 安装官方插件版



该版本相较于传统的docker-compose有以下优势:
- 直接集成到docker CLI
- 版本与Docker Engine同步更新
- 兼容compose v2语法

2. 验证安装结果
 

docker compose version  # 注意中间没有短横线


预期输出示例:
Docker Compose version v2.17.2

三、进阶配置建议

1. 非root用户权限配置(可选)
为避免每次使用sudo,可将当前用户加入docker组:
 

sudo usermod -aG docker $USER   # $USER替换为具体用户名
newgrp docker                   # 刷新用户组



注意:修改后需要重新登录生效

2. 常用维护命令
- 查看docker版本:`docker version`
- 查看系统信息:`docker info`
- 清理无用镜像:`docker system prune`

四、常见问题排查

Q1:镜像拉取速度慢
A:检查daemon.json配置格式,建议注释掉部分镜像源测试

Q2:权限拒绝错误
A:执行`sudo chmod 777 /var/run/docker.sock`临时解决,建议使用用户组方案

Q3:脚本安装失败
A:可尝试官方备用方案:
 

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


 

五、版本兼容说明
- Docker 23.x+ 已内置Compose插件
- 旧版Compose文件需注意volume语法差异
- 建议定期执行`sudo apt-get upgrade docker-*`保持更新

六、安全建议
1. 定期清理无用镜像:`docker image prune`
2. 避免使用--privileged特权模式
3. 生产环境建议配置TLS证书加密

通过本教程,您已完成Docker环境的完整部署。接下来可以:
- 尝试部署Nginx:`docker run -d -p 80:80 nginx`
- 学习Dockerfile编写
- 使用docker-compose编排多容器应用

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

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

相关文章

批量将 PPT 转换为PDF/XPS/JPG图片等其它格式

PPT 文档经常有转换为其它格式的需求,比如将 PPT 转换为 PDF、将 PPT 转换为图片、生成 PPT 预览图等,这在某些场景下非常的有用,今天给大家介绍的就是如何批量将 PDF 转换为 PDF、JPG、Tiff 等多种格式的操作。 在工作中我们经常需要接触 PP…

c库、POSIX库、C++库、boost库之间的区别和联系

文章目录 一、区别1. 定义和来源2. 功能范围3. 可移植性4. 语言支持5. 维护和更新 二、联系1. 相互补充2. 部分功能重叠3. 共同促进编程发展4. 代码兼容性 三、总结 一、区别 1. 定义和来源 C 库函数:由 ANSI C 和 ISO C 标准定义,是 C 语言编程的基础…

响应压缩导致的接口请求response没有响应体问题排查

目录 一、背景二、排查过程三、解决方法四、学习与思考-响应压缩(一)可能原因(二)深入排查(三)注意 一、背景 接口发布到测试环境,测试同学说没有数据 二、排查过程 1、本地用相同的参数、相…

JVM中的运行时常量池详解

运行时常量池(Runtime Constant Pool)是每一个类或接口的常量池(Constant_Pool)的运行时表示形式,它包括了若干种不同的常量:从编译期可知的数值字面量到必须运行期解析后才能获得的方法或字段引用。运行时…

C# MethodBase 类使用详解

总目录 前言 在C#编程中,反射(Reflection)是一种强大的机制,允许我们在运行时检查和操作类型的成员。MethodBase 类是.NET框架中 System.Reflection 命名空间下的一个抽象类,它是所有方法( MethodInfo 和 Constructor…

【css酷炫效果】纯CSS实现3D翻转卡片动画

【css酷炫效果】纯CSS实现3D翻转卡片动画 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90490472 缘 创作随缘,不定时更新。 创作背景 刚看到csdn出活动了&am…

Flask多参数模版使用

需要建立目录templates; 把建好的html文件放到templates目录里面; 约定好参数名字,单个名字可以直接使用;多参数使用字典传递; 样例: from flask import render_template # 模板 (Templates) #Flask 使用…

SVN简明教程——下载安装使用

SVN教程目录 一、开发中的实际问题二、简介2.1 版本控制2.2 Subversion2.3 Subversion的优良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安装与配置1. 服务器端程序版本2. 下载源码包3. 下载二进制安装包4. 安装5. 配置版本库① 为什么要配置版本库?② 创建目…

OpenCV图像拼接(1)概述

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 此图说明了在Stitcher类中实现的拼接模块流程。使用该类,可以配置/移除某些步骤,即根据特定需求调整拼接流程。流程中的所…

Ubuntu20.04安装Nvidia显卡驱动

Ubuntu20.04安装Nvidia显卡驱动 安装环境为Dell R540服务器 官网下载Nvidia显卡驱动 https://www.nvidia.cn/geforce/drivers/ 安装显卡驱动 chmod x NVIDIA-Linux-x86_64-470.63.01.run sudo ./NVIDIA-Linux-x86_64-470.63.01.run 遇到nouveau报错 lsmod查看nouveau驱动…

互联网it常用抓包工具说明

一、引言 在互联网 IT 领域,无论是网络故障排查、安全检测,还是开发调试,抓包工具都发挥着举足轻重的作用。 当网络出现故障,比如网页加载缓慢、应用无法连接服务器时,抓包工具可以帮助我们捕获网络数据包&#xff0…

Linux 音频驱动 WM8960 音频 DAC IC 音乐播放与录音

这些先引出一个内容,是 Linux 内核的音频系统,ALSA,提供了对声卡的低级访问,支持 PCM,播放/录音、混音、MIDI 处理等功能。它取代了旧的 OSS,并提供更强大的功能和更好的硬件支持。 ALSA 主要特点&#xf…

k8s中的组件

1.namespace Namespace 用于将集群资源划分为不同的逻辑组&#xff0c;方便管理和隔离 kubectl get namespace 查看所有逻辑组 kubectl describe namespace <namespace-name> 查看某个逻辑组信息详情 kubectl create namespace ... 创建逻辑组 kubectl delete names…

OpenHarmony 开源鸿蒙北向开发——3.配置SDK

安装、配置完成之后我们就要配置SDK。 我们创建工程后&#xff0c;点击右上角设置 进入设置 进入OpenHarmony SDK&#xff0c;选择编辑 这里配置一下SDK安装位置 点击完成 这里我们API版本勾选第一个即可 确认安装 勾选接受 这里要等一会 安装完成后&#xff0c;点击完成

5.2《生活中的透镜》——5.3《凸透镜成像规律》讲后再上

教会什么:照相机、投影仪、放大镜的原理 培养什么:(再说) 课标: (二)运动和相互作用 2.3 声和光 2.3.5了解凸透镜成像规律的应用。 例7 了解凸透镜成像规律在放大镜、照相机中的应用。 一、导入 提问:生活中有哪些透镜?(放大镜、照相机、投影仪/幻灯机) ——直接提出…

怎么用LoRA的低秩结构近似Fisher矩阵

怎么用LoRA的低秩结构近似Fisher矩阵 目录 怎么用LoRA的低秩结构近似Fisher矩阵**1. Fisher矩阵的内存挑战****2. LoRA的低秩结构与Fisher近似****3. 具体实现步骤****4. 示例说明****5. 有效性分析****6. 扩展与优化****总结**在LoRA(低秩适应)中,通过低秩结构近似Fisher矩…

C#通过API接口返回流式响应内容---SignalR方式

1、背景 在上两篇《C#通过API接口返回流式响应内容—分块编码方式》和《C#通过API接口返回流式响应内容—SSE方式》实现了流式响应的内容。 上面的这两个主要是通过HTTP的一些功能&#xff0c;除了这些之外&#xff0c;还有WebSocket的方式。C#中的WebSocket的有比较多的方案&…

Redis 跳表原理详解

一、引言 在 Redis 中&#xff0c;有序集合&#xff08;Sorted Set&#xff09;是一种非常重要的数据结构&#xff0c;它可以实现元素的有序存储和高效查找。而实现有序集合的底层数据结构之一就是跳表&#xff08;Skip List&#xff09;。跳表是一种随机化的数据结构&#xff…

识别并脱敏上传到deepseek/chatgpt的文本文件中的身份证/手机号

本文将介绍一种简单高效的方法解决用户在上传文件到DeepSeek、ChatGPT,文心一言,AI等大语言模型平台过程中的身份证号以及手机号等敏感数据识别和脱敏问题。 DeepSeek、ChatGPT,Qwen,Claude等AI平台工具快速的被接受和使用,用户每天上传的文本数据中潜藏着大量敏感信息,…

Spring 如何创建 Bean 实例的?

Spring 创建 Bean 实例的过程主要由 BeanFactory 接口及其实现类&#xff08;通常是 AbstractBeanFactory 的 doGetBean 方法和 DefaultListableBeanFactory 的 preInstantiateSingletons 方法&#xff09;负责。这个过程涉及多个步骤&#xff0c;包括 Bean 定义的解析、依赖的…