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.rhkb.cn/news/471844.html

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

相关文章

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5 1. 安装 Oracle Database 23ai2. 连接 Oracle Database 23c3. 重启启动后&#xff0c;手动启动数据库4. 重启启动后&#xff0c;手动启动 Listener5. 手动启动 Pluggable Database6. 自动启动 Pluggable Database7. 设置开…

实验6记录网络与故障排除

实验6记录网络与故障排除 实验目的及要求&#xff1a; 通过实验&#xff0c;掌握如何利用文档记录网络设备相关信息并完成网络拓扑结构的绘制。能够使用各种技术和工具来找出连通性问题&#xff0c;使用文档来指导故障排除工作&#xff0c;确定具体的网络问题&#xff0c;实施…

Go开发指南- Goroutine

目录&#xff1a; (1)Go开发指南-Hello World (2)Go开发指南-Gin与Web开发 (3)Go开发指南-Goroutine Goroutine 在java中我们要实现并发编程的时候&#xff0c;通常要自己维护一个线程池&#xff0c;并且需要去包装任务、调度任务和维护上下文切换。这个过程需要消耗大量的精…

解决failed to execute PosixPath(‘dot‘) 或者GraphViz‘s executables not found

在网上找了很多方法都没解决&#xff0c;所以写一篇文章帮助和我遇到同样问题的人 解决方法&#xff1a; 因为python解释器会解释转移字符&#xff0c;因此在环境变量中把\bin换成\\bin即可 解决过程&#xff1a; 系统&#xff1a;win10 已安装pip install graphviz&#xff0…

力扣 LeetCode 541. 反转字符串II(Day4:字符串)

解题思路&#xff1a; i可以成段成段的跳&#xff0c;而不是简单的i class Solution {public String reverseStr(String s, int k) {char[] ch s.toCharArray();// 1. 每隔 2k 个字符的前 k 个字符进行反转for (int i 0; i < ch.length; i 2 * k) {// 2. 剩余字符小于 …

官方压测工具memtier-benchmark压测redis

1 概述 memtier_benchmark是一种高吞吐量的性能基准测试工具&#xff0c;主要用于Redis和Memcached。它是 Redis官方开发团队开发的&#xff0c;旨在生成各种流量模式&#xff0c;以便测试和优化以上两个数据库的性能。 memtier_benchmark的一些关键特点如下&#xff1a; 多…

用 Python 从零开始创建神经网络(三):添加层级(Adding Layers)

添加层级&#xff08;Adding Layers&#xff09; 引言1. Training Data2. Dense Layer Class 引言 我们构建的神经网络变得越来越受人尊敬&#xff0c;但目前我们只有一层。当神经网络具有两层或更多隐藏层时&#xff0c;它们变成了“深度”网络。目前我们只有一层&#xff0c…

MFC工控项目实例三十实现一个简单的流程

启动按钮夹紧 密闭&#xff0c;时间0到平衡 进气&#xff0c;时间1到进气关&#xff0c;时间2到平衡关 检测&#xff0c;时间3到平衡 排气&#xff0c;时间4到夹紧开、密闭开、排气关。 相关代码 void CSEAL_PRESSUREDlg::OnTimer_2(UINT nIDEvent_2) {// if (nIDEvent_21 &am…

Java I/O(输入/输出)——针对实习面试

目录 Java I/O&#xff08;输入/输出&#xff09;什么是Java I/O流&#xff1f;字节流和字符流有什么区别&#xff1f;什么是缓冲流&#xff1f;为什么要使用缓冲流&#xff1f;Java I/O中的设计模式有哪些&#xff1f;什么是BIO&#xff1f;什么是NIO&#xff1f;什么是AIO&am…

Exploring Defeasible Reasoning in Large Language Models: A Chain-of-Thought A

文章目录 题目摘要简介准备工作数据集生成方法实验结论 题目 探索大型语言模型中的可废止推理&#xff1a;思路链 论文地址&#xff1a;http://collegepublications.co.uk/downloads/LNGAI00004.pdf#page136 摘要 许多大型语言模型 (LLM) 经过大量高质量数据语料库的训练&…

数据结构--数组

一.线性和非线性 线性&#xff1a;除首尾外只有一个唯一的前驱和后继。eg&#xff1a;数组&#xff0c;链表等。 非线性&#xff1a;不是线性的就是非线性。 二.数组是什么&#xff1f; 数组是一个固定长度的存储相同数据类型的数据结构&#xff0c;数组中的元素被存储在一…

MySQL技巧之跨服务器数据查询:基础篇-更新语句如何写

MySQL技巧之跨服务器数据查询&#xff1a;基础篇-更新语句如何写 上一篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以及用同样的…

Unity教程(十八)战斗系统 攻击逻辑

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

前端学习八股资料CSS(二)

更多详情&#xff1a;爱米的前端小笔记&#xff0c;更多前端内容&#xff0c;等你来看&#xff01;这些都是利用下班时间整理的&#xff0c;整理不易&#xff0c;大家多多&#x1f44d;&#x1f49b;➕&#x1f914;哦&#xff01;你们的支持才是我不断更新的动力&#xff01;找…

云计算研究实训室建设方案

一、引言 随着云计算技术的迅速发展和广泛应用&#xff0c;职业院校面临着培养云计算领域专业人才的迫切需求。本方案旨在构建一个先进的云计算研究实训室&#xff0c;为学生提供一个集理论学习、实践操作、技术研发与创新于一体的综合性学习平台&#xff0c;以促进云计算技术…

通过Python 调整Excel行高、列宽

在Excel中&#xff0c;默认的行高和列宽可能不足以完全显示某些单元格中的内容&#xff0c;特别是当内容较长时。通过调整行高和列宽&#xff0c;可以确保所有数据都能完整显示&#xff0c;避免内容被截断。合理的行高和列宽可以使表格看起来更加整洁和专业&#xff0c;尤其是在…

【代码审计】常见漏洞专项审计-业务逻辑漏洞审计

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 0x01 漏洞介绍 1、 原理 业务逻辑漏洞是一类特殊的安全漏洞&#xff0c;业务逻辑漏洞属于设计漏洞而非实…

Wordpress常用配置,包括看板娘跨域等

一个Wordpress的博客已经搭建完成了&#xff0c;那么为了让它看起来更有人间烟火气一点&#xff0c;有一些常用的初始配置&#xff0c;这里整理一下。 修改页脚 页脚这里默认会显示Powered by Wordpress&#xff0c;还有一个原因是这里要加上备案信息。在主题里找到页脚&…

数据库范式、MySQL 架构、算法与树的深入解析

一、数据库范式 在数据库设计中&#xff0c;范式是一系列规则&#xff0c;用于确保数据的组织和存储具有良好的结构、完整性以及最小化的数据冗余。如果不遵循范式设计&#xff0c;数据可能会以平铺式罗列&#xff0c;仅使用冒号、分号等简单分隔。这种方式存在诸多弊端&#…

Taro React-Native IOS 打包发布

http网络请求不到 配置 fix react-native facebook::flipper::SocketCertificateProvider‘ (aka ‘int‘) is not a function or func_rn运行debug提示flipper-CSDN博客 Xcode 15&#xff08;iOS17&#xff09;编译适配报错_no template named function in namespace std-CS…