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 Engine
   Loaded: 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: registry
        volumes:
          - ./registry-data:/var/lib/registry
      ui:
        image: joxit/docker-registry-ui:static
        ports:
          - 8080:80
        environment:
          - REGISTRY_TITLE=您的仓库名称
          - REGISTRY_URL=http://registry:5000
        depends_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版(蓝奏云下载地址)直接下载永久保存,不限速,方便随时查阅
资源预览:
在这里插入图片描述

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

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

相关文章

大数据新视界 -- 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

CLIP论文CLIP 改进工作串讲

文章目录 CLIPViLTCLIP 改进工作串讲Lseg&#xff08;Language -driven semantic segmentation)Group ViT&#xff08;Semantic Segmentation Emerges from Text Supervision&#xff09;ViLDGLIP_V1/V2&#xff08;Ground Language-Image Pre-train&#xff09;CLIP PassoCLIP…

C++:set详解

文章目录 前言一、set概念介绍二、set的使用1. 插入删除相关2. 查找相关1&#xff09;find2&#xff09;count3&#xff09;lower_bound与upper_bound4&#xff09;equal_range 三、set的值是不能修改的原理四、基于哈希表的set总结 前言 根据应用场景的不同&#xff0c;STL总…

【静态页面】尚品汇 1、设计稿分析及资源准备

目录 1. 准备工作2. 理解设计3. 规划项目结构 1. 准备工作 安装必要的工具&#xff1a;确保你的开发环境已经准备好&#xff0c;包括文本编辑器&#xff08;如 VSCode&#xff09;、浏览器等。获取设计文件&#xff1a;获取UI设计稿或者设计文件链接&#xff0c;并确保可以访问…

小时收入:衡量工作效率与个人自由的标准

小时收入&#xff0c;就是按照小时来计算一个人的收入。比如&#xff0c;一个月一共工作200小时&#xff0c;获得的总收入是20000元&#xff0c;那么小时收入就是100元/小时。 小时收入可以反应一个人的赚钱效率。 可能两个人的月收入一样&#xff0c;但是付出的总工作时间不…

RFID文件柜在文件管理中的作用

一、RFID文件柜系统概述 1.1 RFID技术简介 RFID&#xff08;Radio Frequency Identification&#xff0c;无线射频识别&#xff09;技术是一种非接触式的自动识别技术&#xff0c;它通过无线电讯号识别特定目标并读写相关数据&#xff0c;无需识别系统与特定目标之间建立机械…

mysql代码生成器

项目 pom 文件内容 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/…

域控操作二十四:主域故障辅域接替

模拟环境&#xff1a;上海DC1故障无法开机&#xff0c;导致只有一个DNS的电脑无法上网&#xff08;实际可以添加DC2但是为了实验就不说了&#xff09; FSMO还在DC1上 使用powershell把角色迁移到DC2 ntdsutil roles connections connect to server DC2SHA.whbk.cn quitSeize …

Redis(2):内存模型

一、Redis内存统计 工欲善其事必先利其器&#xff0c;在说明Redis内存之前首先说明如何统计Redis使用内存的情况。 在客户端通过redis-cli连接服务器后&#xff08;后面如无特殊说明&#xff0c;客户端一律使用redis-cli&#xff09;&#xff0c;通过info命令可以查看内存使用情…

数据分析:宏基因组DESeq2差异分析筛选差异物种

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理:计算步骤:结果:加载R包准备画图主题数据链接导入数据Differential abundance (No BP vs 2BP TA)构建`countData`矩阵过滤低丰度物种构建DESeq数据对象DESeq2差异分析画图Di…

泷羽sec学习打卡-shodan扫描4

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于shodan的那些事儿-4 一、shodan4如何查看公网ip&#xff1f;如何查看自己的ip&#xff1f;如何查看出…

abap 可配置通用报表字段级日志监控

文章目录 1.功能需求描述1.1 功能1.2 效果展示2.数据库表解释2.1 表介绍3.数据库表及字段3.1.应用日志数据库抬头表:ZLOG_TAB_H3.2.应用日志数据库明细表:ZLOG_TAB_P3.3.应用日志维护字段配置表:ZLOG_TAB_F4.日志封装类5.代码6.调用方式代码7.调用案例程序demo1.功能需求描述 …

Spark中的shuffle

Shuffle的本质基于磁盘划分来解决分布式大数据量的全局分组、全局排序、重新分区【增大】的问题。 1、Spark的Shuffle设计 Spark Shuffle过程也叫作宽依赖过程&#xff0c;Spark不完全依赖于内存计算&#xff0c;面临以上问题时&#xff0c;也需要Shuffle过程。 2、Spark中哪…

golang安装,常用框架安装,记忆点

0.安装 虚拟机扩容 【Linux干货分享】LVM快速扩容虚拟机磁盘_哔哩哔哩_bilibili newvim 安装 sudo add-apt-repository ppa:neovim-ppa/stable sudo apt-get update sudo apt-get install -y neovim 最强Vim新手指南&#xff0c;手把手教你打造只属于自己的代码编辑器&am…

亚马逊旺季爆品攻略:如何利用旺季打造爆品?

随着假日季的脚步日益临近&#xff0c;亚马逊卖家们正摩拳擦掌&#xff0c;准备迎接这一年度的销售高峰。本文将为您揭示如何在旺季中抓住机遇&#xff0c;通过精心策划和执行一系列策略&#xff0c;让您的产品在众多竞争对手中脱颖而出&#xff0c;成为真正的爆品&#xff01;…

别卷Transformer了!时序卷积这么做,一样发顶会!

Transformer爆火之后&#xff0c;时间序列领域基本上算是被占领了&#xff0c;围绕此类相关的研究也是非常之卷。这种情况下&#xff0c;我们不妨了解一下时序卷积。 在大规模时间序列数据处理任务中&#xff0c;时序卷积是一种非常重要的方法&#xff0c;它结合了传统CNN的特…

【C++】STL中的list容器详解及常用函数用法

个人主页: 起名字真南的CSDN博客 个人专栏: 【数据结构初阶】 &#x1f4d8; 基础数据结构【C语言】 &#x1f4bb; C语言编程技巧【C】 &#x1f680; 进阶C【OJ题解】 &#x1f4dd; 题解精讲 目录 &#x1f4cc; 1 引言&#x1f4cc;2 list容器✨2.1 list容器简介✨2.2 li…

使用kalibr_calibration标定相机(realsense)和imu(h7min)

vslam-evaluation/VINS/Installation documentation/4.IMU和相机联合标定kalibr_calibration.md at master DroidAITech/vslam-evaluation GitHub 目录 1.kalibr安装 1.1安装依赖项 1.2创建工作空间 1.3下载kalibr并编译 1.4设置环境变量 2.准备标定板 3.配置驱动和打…

论文阅读:基于语义分割的非结构化田间道路场景识别

论文地址&#xff1a;DOI: 10.11975/j.issn.1002-6819.2021.22.017 概要 环境信息感知是智能农业装备系统自主导航作业的关键技术之一。农业田间道路复杂多变&#xff0c;快速准确地识别可通行区域&#xff0c;辨析障碍物类别&#xff0c;可为农业装备系统高效安全地进行路径规…