Docker在CentOS上的安装与配置

前言

随着云计算和微服务架构的兴起,Docker作为一种轻量级的容器技术,已经成为现代软件开发和运维中的重要工具。本文旨在为初学者提供一份详尽的指南,帮助他们在CentOS系统上安装和配置Docker及相关组件,如Docker Compose和私有Docker镜像仓库。

1. 准备工作

在开始安装之前,请确保您的CentOS系统满足以下条件:

  • 操作系统版本:CentOS 7 或更高版本,64位系统。
  • 内核版本:至少为3.10。
  • 网络连接:确保虚拟机能够连接到互联网,因为安装过程中需要从远程仓库下载软件包。
1.1 卸载旧版本Docker(可选)

如果您之前安装过Docker,建议先卸载旧版本以避免冲突。执行以下命令卸载旧版本的Docker:

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce
2. 安装Docker

接下来,我们将逐步安装最新的Docker CE(社区版)。

2.1 检查网络连接

确保您的虚拟机能够访问互联网:

ping 163.com

如果能够收到回复,说明网络连接正常。

2.2 安装必要的依赖

安装一些必要的工具和依赖包:

sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken
2.3 添加Docker的官方仓库

使用阿里云的镜像源来加快下载速度:

sudo yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.4 更新本地镜像源并安装Docker

更新本地镜像源并安装Docker CE:

sudo yum makecache fast
sudo yum install -y docker-ce

安装完成后,您可以使用以下命令检查Docker的版本:

docker -v

输出示例:

Docker version 20.10.7, build f0df3c0
3. 启动Docker服务

在启动Docker服务之前,建议关闭防火墙以避免端口冲突的问题。

3.1 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl status firewalld
3.2 启动Docker服务

启动Docker服务:

sudo systemctl start docker

您可以使用以下命令检查Docker服务的状态:

sudo systemctl status docker

输出示例:

● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: active (running) since Wed 2024-11-06 20:22:00 CST; 1min 30s ago
4. 配置Docker镜像加速

为了提高镜像下载速度,推荐使用国内的镜像加速器。

4.1 创建或编辑配置文件

创建或编辑 /etc/docker/daemon.json 文件:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
}
EOF
4.2 重新加载Docker守护进程配置

重新加载Docker守护进程配置并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker
5. 安装Docker Compose

Docker Compose允许您在一个YAML文件中定义多个容器的应用场景,非常适合开发环境的构建。

5.1 下载Docker Compose

下载最新版本的Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
5.2 修改文件权限

修改文件权限以使其可执行:

sudo chmod +x /usr/local/bin/docker-compose
5.3 验证安装

验证Docker Compose是否安装成功:

docker-compose --version

输出示例:

docker-compose version 1.29.2, build 5becea4c
5.4 启用命令补全(可选)

为了方便使用,您可以启用Docker Compose的命令补全功能:

sudo curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

如果遇到网络问题导致下载失败,可以尝试手动下载文件并通过SCP等方式上传至服务器。

6. 搭建私有Docker镜像仓库

搭建私有镜像仓库可以帮助团队更好地管理和分发自定义的Docker镜像。

6.1 简化版镜像仓库

使用官方的Docker Registry镜像来启动一个简单的私有仓库:

  1. 创建一个数据目录(可选):

    mkdir -p ~/docker-registry
    cd ~/docker-registry
    
  2. 运行Docker Registry容器:

    sudo docker run -d \--restart=always \--name registry \-p 5000:5000 \-v $(pwd)/registry-data:/var/lib/registry \registry
    
  3. 访问私有仓库:

    打开浏览器并访问 http://<your-ip>:5000/v2/_catalog 查看当前私有镜像服务中包含的镜像。

6.2 带有图形界面的镜像仓库

如果您需要更友好的界面操作,可以使用第三方的UI工具,例如 joxit/docker-registry-ui

  1. 创建一个 docker-compose.yml 文件:

    nano docker-compose.yml
    
  2. 编辑文件,添加以下内容:

    version: '3.0'
    services:registry:image: registryvolumes:- ./registry-data:/var/lib/registryui:image: joxit/docker-registry-ui:staticports:- 8080:80environment:- REGISTRY_TITLE=您的仓库名称- REGISTRY_URL=http://registry:5000depends_on:- registry
    
  3. 启动服务:

    sudo docker-compose up -d
    
  4. 访问图形化界面:

    打开浏览器并访问 http://<your-ip>:8080 查看图形化的管理界面。

6.3 配置Docker信任私有仓库

为了让Docker客户端信任您的私有仓库,需要编辑 /etc/docker/daemon.json 文件,添加私有仓库的地址:

  1. 编辑配置文件:

    sudo vi /etc/docker/daemon.json
    
  2. 添加以下内容,替换 <your-ip> 为您的服务器IP地址:

    {"insecure-registries": ["<your-ip>:5000"]
    }
    
  3. 重新加载Docker守护进程配置并重启Docker服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
总结

通过以上步骤,您已经在CentOS系统上成功安装并配置了Docker及其相关组件。

教程文档PDF版(蓝奏云下载地址)直接下载永久保存,不限速,方便随时查阅
资源预览:
在这里插入图片描述

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

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

相关文章

前端八股文(二)CSS 持续更新中。。。

1.css3新增 新增属性选择器、伪类选择器 新增text-shadow、box-shadow、border-radius 新增transform、transition、动画keyframes、animation 新增flex、grid布局&#xff0c;媒体查询media 新增box-sizing&#xff1a;border-box怪异盒模型 content-box标准盒模型 2.说…

MySQL日期时间函数大全

DAYOFWEEK(date)  返回日期date是星期几(1星期天,2星期一,……7星期六,ODBC标准) mysql> select DAYOFWEEK(1998-02-03);   -> 3 WEEKDAY(date)  返回日期date是星期几(0星期一,1星期二,……6 星期天)。 mysql> select WEEKDAY(1997-10-04 22:23:00);   -> 5…

Redis 权限控制(ACL)|ACL 命令详解、ACL 持久化

官网文档地址&#xff1a;https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/ 使用版本&#xff1a;Redis7.4.1 什么是 ACL&#xff1f; ACL&#xff08;Access Control List&#xff09;&#xff0c;权限控制列表&#xff0c;是 Redis 提供的一种…

淘宝反爬虫机制的主要手段有哪些?

淘宝的反爬虫机制主要有以下手段&#xff1a; 一、用户身份识别与验证&#xff1a; User-Agent 识别&#xff1a;通过检测 HTTP 请求头中的 User-Agent 字段来判断请求是否来自合法的浏览器。正常用户使用不同浏览器访问时&#xff0c;User-Agent 会有所不同&#xff0c;而爬虫…

2024最新gewe开发微信机器人教程说明

微信时代&#xff0c;越来越多的业务/服务沟通已直接在微信上完成&#xff0c;但在沟通效率及员工管理方面却存在如下问题&#xff1a; 1、现有的微信功能&#xff0c;已无法满足与客户沟通时的高效率要求 2、当员工掌管的微信号若干或更多时&#xff0c;迫切需要有个汇总工具…

Java项目实战II基于Spring Boot的智慧生活商城系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着科技的飞速发展&#xff0c;人们的…

计算机视觉的研究方向和相应算法

计算机视觉是一个广泛的领域&#xff0c;涵盖了多种研究方向和算法。以下是对计算机视觉研究方向及其相关算法的详细介绍&#xff1a; 研究方向图像识别与分类&#xff1a;研究如何让计算机识别并分类图像中的对象&#xff0c;如车辆、人脸、动物等。 目标检测与跟踪&#xff1…

c++中cin的错误输入锁

如果你定义了一个int型&#xff0c;那么当cin输入表达式的值是就会检测输入的是不是数字。如果程序发现用户输入了错误内容时&#xff0c;程序就会锁住cin&#xff0c;所以你就需要重置cin。我们可以利用这一特点来解决下面这道题 口算练习题 题目描述 王老师正在教简单算术运…

如何使用Langchain集成Kimi AI(Moonshot AI)

如何使用Langchain集成Kimi&#xff08;Moonshot AI&#xff09; 一、获取API密钥1. 注册账号2. 获取密钥 二、环境配置三、上手四、整合一下五、检验一下成果六、官方网站 一、获取API密钥 1. 注册账号 毕竟只有注册过帐号才能拿到key~ Moonshot 登陆 2. 获取密钥 用户中心…

前端开发模板Pear Admin Layui

目录 基本资料学习笔记04-Pear-Admin-Layui模板运行05-Pear-Admin-Layui-GIT方式代...06-Pear-Admin与Vue对比 & 07-Pear-Admin与Vue对比补充09-Pear-Admin-CRUD练习-数据库表创建12-Pear-Admin-CRUD练习-引入其它依赖 & 13-Pear-Admin-CRUD练习-三层架构以及常见配置 …

【ETL:概念、流程与应用】

ETL:概念、流程与应用 目录 什么是ETLETL的工作流程 2.1 数据抽取(Extract)2.2 数据转换(Transform)2.3 数据加载(Load)ETL的应用场景常见的ETL工具ETL的挑战与解决方法ETL与ELT的区别总结1. 什么是ETL ETL 是数据处理的流程,表示“抽取(Extract

翰鲸学术辅导:研究生学术之路的助力

近期又到了研究生开题之际&#xff0c;研二的学生们都深受论文困扰。不少学弟学妹在微信上询问我关于学术辅导机构是否值得报名的问题。在此&#xff0c;通过本期文章为大家科普学术辅导机构相关情况&#xff0c;并对我曾报名的翰鲸学术辅导进行简单测评&#xff0c;希望广大学…

计算机网络之HTTP协议

一、HTTP协议基本概念 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效&#xff0c;减少网络传输量。HTTP协议不仅保证计算机正确快速地传输超文本文档&#…

vue使用方法创建组件

vue 中 创建 组件 使用 方法创建组件 vue2 中 import vueComponent from xxxx function createFn(){const creator Vue.extend(vueComponent);const instance new creator();document.appendChild(instance.$el); }vue3 中 import { createApp } from "vue"; im…

关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法

关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c语法 说明(废话)问题解决方案问题1 case中不能定义变量多态函数动态传绑定的问题 总结 说明(废话) 用了这么多年的c&#xff0c;有些语法上的问题真的让人很难办&#xff0c;有的问…

MySQL中的行转列和列转行操作

MySQL是一款常用的关系型数据库&#xff0c;广泛应用于各种类型的应用程序和数据存储需求。在MySQL中&#xff0c;我们经常需要对表格进行行转列或列转行的操作&#xff0c;以满足不同的分析或报表需求。本文将详细介绍MySQL中的行转列和列转行操作&#xff0c;并提供相应的SQL…

新世联科技:NG2-A-7在DAC空气捕集提取CO2的应用

一、DAC空气捕集提取CO2的介绍 直接空气碳捕获&#xff08;Direct Air Capture&#xff0c;简称DAC&#xff09;是一种直接从大气中提取二氧化碳的技术。 二、DAC空气捕集提取CO2的前景 从大气中提取的这种二氧化碳可以作为循环经济的一部分以各种不同方式使用。未来&#xf…

面试题分享11月5日

1、JWT 数据结构 头部&#xff08;Header&#xff09;、负载&#xff08;Payload&#xff09;、签名&#xff08;signature&#xff09; 头部&#xff08;Header&#xff09;、负载&#xff08;Payload&#xff09;都是明文的&#xff0c;根据 base64URL 进行转化&#xff0c…

uni-app 封装图表功能

文章目录 需求分析1. 秋云 uchars2. Echarts 需求 在 uni-app 中使用图表功能&#xff0c;两种推荐的图表工具 分析 在 Dcloud市场 搜索Echarts关键词&#xff0c;会出现几款图表工具&#xff0c;通过大家的下载量&#xff0c;可以看到秋云这个库是比较受欢迎的&#xff0c;其…

详细解读个性化定制大杀器IP-Adapter代码

Diffusion models代码解读&#xff1a;入门与实战 前言&#xff1a;IP-Adapter作为Diffusion Models最成功的技术之一&#xff0c;已经在诸多互联网应用中落地。介绍IP-Adapter原理和应用的博客有很多&#xff0c;但是逐行详细解读代码的博客很少。这篇博客从细节出发&#xff…