【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略

这篇具有很好参考价值的文章主要介绍了【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略

📚「本系列博文旨在深入探索容器技术,特别是Docker的应用和原理,无论是对Docker感兴趣的新手还是希望进一步提升技能的专业人士,本系列将是一条理想的学习路径。接下来的规划中,我们将通过二十多个章节从基础到高级逐步理解容器技术,全面覆盖Docker和容器技术的核心内容,希望帮助读者在实际工作中高效应用容器技术。」

🚀 引言

「欢迎进入Docker的世界」

在当今快速发展的云计算时代,企业面临着越来越复杂的技术挑战。如何快速、高效地部署和管理应用成为了每个企业IT团队的核心任务。这时,Docker就像一股清流,为企业级应用部署带来了革命性的变化。

「为什么选择Docker?」

首先,让我们来简单回顾一下Docker的魔力。Docker是一个开放平台,用于开发、交付和运行应用程序。通过使环境一致性得以保持,从而简化了程序的部署工作,并且通过容器化,使得应用可以在几乎任何地方无缝运行。

🔍 深入了解Docker的版本

在我们深入探讨企业级Docker部署之前,了解Docker的不同版本及其特性至关重要。Docker作为一个行业领先的容器化平台,提供了多个版本,以适应不同规模和需求的企业环境。

  1. 「Docker Engine - 社区版 (CE,Community Edition)」: 这是Docker的免费版,主要面向开发人员和小型团队。它提供了基本的容器化功能,适合那些希望探索Docker技术或在小型项目中实施容器化的用户。

  2. 「Docker Engine - 企业版 (EE,Enterprise Edition)」: 专为企业级用户设计,EE版在社区版的基础上增加了高级功能,如集成安全性、管理和支持服务。这些功能对于需要在生产环境中部署和管理大规模容器化应用的企业至关重要。

🛠️ CentOS 宿主机上安装 Docker

在大多数Linux发行版上,您可以使用官方的安装脚本或包管理器来安装Docker。

🔧 「一、使用脚本快速安装」

在测试或开发环境中Docker官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS系统上可以使用这套脚本安装:

[root@swarm-manager ~]# curl -fsSL https://get.docker.com -o get-docker.sh
[root@swarm-manager ~]# sh get-docker.sh --mirror Aliyun

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker CE安装在系统中。

⚙️ 「二、使用包管理器安装」

1、yum源操作:

[root@localhost ~]# yum update
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、可以查看所有仓库中所有docker版本,并选择特定版本安装

[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64            3:18.09.3-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.3-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:18.09.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.1-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.0-3.el7                    docker-ce-stable

3、安装Docker,如下安装最新版本或者安装指定版本:

[root@localhost ~]# yum install docker-ce

4、启动Docker,并加入开机自启动:

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

5、验证安装是否成功

[root@swarm-manager ~]# docker version        
[root@swarm-manager ~]# docker info

docker version可以查看client和server相关组件的版本信息,docker info可以了解 Docker Engine 更多相关的信息,比如运行的容器数量,存储驱动、日志驱动、CPU和内存资源等等信息。

👨‍💻 「三、建立Docker用户组」

1、在Linux环境下部署Docker时,使用非root用户进行操作是一个安全最佳实践。默认情况下,docker命令会使用Unix socket与Docker引擎通讯,而只有root用户和docker组的用户才可以访问Docker引擎的Unix socket。一般Linux系统上不会直接使用root用户进行操作,因此,需要将使用docker的用户加入到docker用户组。

# 新建用户组docker之前,查看用户组中有没有docker组,如果已经存在,则不需要再进行创建
# 检查指令 cat /etc/group | grep docker
[root@swarm-manager ~]# groupadd docker
# 创建用户并加入到docker组下
[root@swarm-manager ~]# useradd -g docker docker
# 修改用户密码
[root@swarm-manager ~]# passwd docker

2、重启docker,然后使用docker用户就可以操作docker指令:

[root@swarm-manager ~]# systemctl restart docker
[root@swarm-manager ~]# su - docker
# docker version可以查看到client和server版本信息即正常
[docker@swarm-manager ~]$ docker version

🧪 配置镜像源

「虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,对于企业级生产环境来说:独立部署私有环境的Registry是非常必要的。」 所以Harbor孕育而生,Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor本身环境的部署和使用在后续章节介绍,这里就看docker如何对接到已经存在的harder registry上。

1、修改docker配置文件:/etc/docker/daemon.json

#添加如下内容(客户端访问的网址):
{
  "insecure-registries": ["192.168.31.162:10000"]
}

192.168.31.162:10000就是Harbor服务的地址,默认情况下,Harbor 不附带证书,以便可以通过 HTTP 连接到它。如果生产环境和外部网络连接隔离的,可以采用,不过对于生产环境最好还是建议使用 HTTPS,步骤稍微麻烦些,需要在/etc/docker/certs.d/目录中添加对应证书才能正常登录,具体配置参加Harbor环境部署章节再说。

2、重启docker:

[root@swarm-manager ~]# systemctl restart docker

3、登录registry:

[root@swarm-manager ~]# docker login 192.168.31.162:10000
#或者 
[root@swarm-manager ~]# docker login -uadmin -p123456 192.168.31.162:10000

4、测试推送镜像:将一个本地镜像修改 tag 推送到Harbor Registry上

[root@k8s-03 harbor]# docker tag tomcat:latest 192.168.31.162:10000/library/tomcat:8.0
[root@k8s-03 harbor]# docker push 192.168.31.162:10000/library/tomcat:8.0

harber管理界面查看,在library项目下就会存在刚才推送上来的tomcat镜像:

【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略,云原生,docker,eureka,容器,运维

🎉 修改镜像存储位置

Docker 默认的位置在/var/lib/docker,当前所有的镜像、容器都存储在这儿,可以通过docker info查看:

[root@swarm-manager ~]# docker info
 ...
 Docker Root Dir: /var/lib/docker

/var一般是系统盘,镜像存储空间占用往往还比较大,所以,一般会将docker的镜像存储位置迁移到其它挂载的业务存储盘上。

「1、停止docker服务」

[root@swarm-manager ~]# systemctl stop docker

「2、修改docker服务启动文件」

[root@swarm-manager ~]# vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/disk/docker

注意:

  • 原配置保持不变,添加--graph=/disk/docker,/disk/docker是新的存储位置

  • 以下两个文件均可修改docker配置:

    /etc/systemd/system/multi-user.target.wants/docker.service
    /usr/lib/systemd/system/docker.service

「3、将原先目录下所有的文件和目录拷贝到新目录下」

[root@swarm-manager ~]# cp -rf /var/lib/docker/* /disk/docker/

[root@swarm-manager docker]# pwd
/disk/docker
[root@swarm-manager docker]# ls
builder  buildkit  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes

「4、重新加载配置并启动」

[root@swarm-manager docker]# systemctl daemon-reload
[root@swarm-manager docker]# systemctl start docker

「5、检查docker信息」

[root@swarm-manager docker]# docker info
......
Docker Root Dir: /disk/docker

注:查看Docker Root Dir: /disk/docker 信息可看到,docker镜像存储位置已修改成功。

🏃 指定IP范围

Docker 在创建网络时默认使用 172.17.0.0/16 网段,容易与局域网内其它网段冲突,并且掩码为 16 位导致子网范围较大,可以通过docker inspect bridge指令查看:

[root@swarm-manager ~]# docker inspect bridge
......
    "Config": [
        {
            "Subnet": "172.17.0.0/16",
            "Gateway": "172.17.0.1"
......

下面将介绍如何修改 docker 创建网络时的默认 IP 地址池范围。

1、修改配置文件指定默认 IP 地址池范围:/etc/docker/daemon.json

{
    "default-address-pools": [
      {"base": "10.1.0.0/16", "size": 24}
    ]
}

说明如下:

  • default-address-pools 用于设置 IP 地址池范围,格式为数组,可指定多个 IP 地址池范围;

  • base 用于指定 IP 地址池的范围,格式为 CIDR 格式;

  • size 用于指定分配子网的掩码长度;

2、重启 Docker 服务

[root@swarm-manager ~]# systemctl daemon-reload
[root@swarm-manager ~]# systemctl restart docker
  1. 查看是否成功

【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略,云原生,docker,eureka,容器,运维

关注回复:福利,有惊喜!!!
文章来源地址https://www.toymoban.com/news/detail-790990.html

到了这里,关于【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 纯小白也能看懂,十分钟帮你快速了解云原生概念

    随着云原生相关技术的蓬勃发展,不管你是刚入职的小白,还是多年经验的老手,都在关注这种技术趋势。但相关内容太多,导致一些小白无从入手,也没有一个全局的概念。那就花10分钟看完本文,帮你快速了解云原生的起源和发展,并介绍一些技术现状 📕作者简介:战斧

    2024年02月14日
    浏览(9)
  • 从零开始学Flask: 3分钟用Python快速构建Web应用

    什么是Flask?Flask 是一个轻量级的 Python Web 应用框架,因其简单易用、灵活性高等特点,可以帮助开发者快速构建小型应用和个人项目,被广泛用于开发各种 Web 应用,包括博客、社交网络、电子商务网站等。Flask 框架具有以下优点: 简单易用。Flask 框架的设计目标是保持简

    2024年02月15日
    浏览(12)
  • 线程池高手进阶:揭秘ThreadPoolExecutor的小妙招!

    ThreadPoolExecutor 是 Java 中用于创建和管理线程池的接口,当线程池中的任务队列已满,并且线程池中的线程数量已经达到最大时,如果再有新的任务提交,就需要一个策略来处理这些无法执行的任务。它 提供了四种拒绝策略,都是 RejectedExecutionHandler 接口的实现,如下: Abor

    2024年01月25日
    浏览(14)
  • 云原生Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

    构建可移植的计算机视觉环境 计算机视觉是一门涉及图像和视频处理的领域,可以应用于目标检测、图像识别、人脸识别等各种任务。 不同的开发环境、操作系统和硬件配置可能导致部署和运行计算机视觉应用的困难。 目的和重要性: Docker容器提供了一种轻量级、可移植、

    2024年04月11日
    浏览(16)
  • Spring高手之路3——揭秘Spring依赖注入和SpEL表达式

    本篇会给大家举出各种 Spring 属性依赖注入的例子,方便大家理解。 我们在前面的文章中已经使用过 XML 进行 setter 方法的属性注入了,下面让我们再来回顾一下: 我们在前面的文章中也学习过如何在 bean 创建时通过编程方式设置属性: 使用XML进行setter方法注入 首先,我们需

    2024年02月08日
    浏览(11)
  • 快速构建一个 GitLab + Jenkins + Harbor 的云原生 DevOps 环境

    今天我们要搭建一条怎样的工具链呢?且看效果图: GitLab + Jenkins + Harbor Toolchain Workflow 首先我们需要完成 GitLab、Jenkins 和 Harbor 三个工具的部署; 接着我们需要在 GitLab 上创建一个代码库,并且在 Jenkins 上创建相应的流水线,这个流程最好也自动化(确实可以自动化); 然后

    2024年02月15日
    浏览(14)
  • 云计算与容器化技术:构建快速交付的应用程序

    作者:禅与计算机程序设计艺术 云计算是一种新的、高效、低成本的计算模式,它能够帮助企业将核心业务线的关键应用部署在任意位置。云计算服务的范围从存储、网络到计算都可以实现按需付费和弹性扩展。因此,云计算可以在满足用户需要的同时节省资源成本。 云计

    2024年02月14日
    浏览(23)
  • Kubernetes快速进阶与实战:构建可靠的容器化应用平台

    💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 Kubernetes是一个开源的容器编排和管理平台,用于自动化部署、扩展和管理容器化应

    2024年02月10日
    浏览(11)
  • Kaniko在containerd中无特权快速构建并推送容器镜像

    目录 一、kaniko是什么 二、kaniko工作原理 三、kanijo工作在Containerd上 基于serverless的考虑,我们选择了kaniko作为镜像打包工具,它是google提供了一种不需要特权就可以构建的docker镜像构建工具。 一、kaniko是什么 kaniko 是一种在容器或 Kubernetes 集群内从 Dockerfile 构建容器镜像的工

    2024年02月11日
    浏览(15)
  • 【云原生】3分钟快速在Kubernetes1.25部署Prometheus2.42+Grafana9.5.1+Alertmanager0.25

    1、简介 Prometheus-operator帮助我们快速创建Prometheus+Grafana+Alertmanager等服务,而kube-prometheus更加完整的帮助我们搭建全套监控体系,这包括部署多个 Prometheus 和 Alertmanager 实例, 指标导出器,例如用于收集节点指标node_exporter,将prometheus链接到各种 指标终结点,以及用于通知群集

    2024年02月11日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包