当前位置: 首页 > news >正文

Docker安装与介绍(一)

一、Docker介绍

1、什么是Docker

     Docker是基于Go语言实现的云开源项目。

     Docker的主要目标是Build,Ship and Run Any App,Anywhere,也就是通过对应用组件的封

     装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应

     用等等)及其运行环境能够做到一次封装,到处运行。如下图所示:

     

      Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。

      将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了

     跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了

     操作。

     Docker是解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器

     虚拟化技术,即一次构建,到处运行。

         

2、Docker基本组成

     Docker架构如图所示:

          

     1)Docker Client

          Client 是Docker  daemon 的客户端工具。用于同 Docker  daemon 进行通信,执行用户

          指令,可部署在 Docker Host 上,也可以部署在其他主机上;能够连接到 Docker  daemon

          即可操作。

     2)Docker Host(Docker主机)

          用于安装 Docker  daemon(Docker守护进程) 的主机,即为 Docker Host,如 一个物

          理主机、一个虚拟机等等;并且该主机中可基于容器镜像运行容器。

     3)Docker  daemon(Docker守护进程)

           用于管理 Docker Host 中运行的容器、容器镜像、容器网络等;管理由Containerd.io提供

     4)Registry(镜像仓库)

          容器镜像仓库,用于存储已生成容器运行模版的仓库;用户使用时可以直接从容器镜像

          仓库中下载容器镜像,即容器运行模版,就可以运行容器镜像中包含的应用了,

          如:Docker Hub(最大的公开仓库 ,存放了数量庞大的镜像供用户下载;国内的公开仓

          库包括阿里云 、网易云 等 ),也可以使用Harbor实现企业私有的容器镜像仓库

     5)Image(镜像)

          把应用运行资源及计算资源以打包方式生成可再用于启动容器的不可变基础设施的文件,

         主要用于基于其启动一个容器。一个镜像文件(Image)可以创建多个容器,以对象的概

          念来看下Image与容器的关系,如下:

docker面向对象
容器对象
Image

     6)Container(容器)

           由容器镜像Image生成,用于应用程序的运行环境,包含容器镜像中所有所有文件以及

           用户添加的文件,属于基于容器镜像生成的可读写层,这也是应用程序运行的空间。

           它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以

           把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络

           空间等)和运行在其中的应用程序

     7)Docker Dashboard

          Docker Dashboard 提供了简单的界面,使用户能够直接从你的电脑上管理你的镜像、

          容器和应用程序,而无需使用CLI命令来执行核心操作。

          Docker Dashboard仅限在MAC和Window上使用。

3、Docker 版本

     Docker-ce  Docker社区版,免费使用,主要用于个人开发者测试使用

     Docker-ee Docker企业版,主要用于企业开发及应用部署,收费版。

二、Docker 安装前环境检查

       以CentOS7为例

1、执行命令 cat /etc/redhat-release 来查看当前linux系统版本

      

2、查询当前系统内核 uname -r

      

3、查看cmd 的配置管理工具的防火墙是否是“关闭” 状态

     firewall-cmd --state

     

4、查看 selinux 是否是 “关闭” 状态,selinux 需要关闭

     

      2)关闭 selinux

           vi  /etc/sysconfig/selinux 编辑配置文件 selinux,将 selinux 文件中的 SELINUX=enforcing

           改为 SELINUX=disabled,然后重启系统,如下图:

           

           

     

三、采用yum 方式安装docker

1、获取阿里云开源镜像站 yum 源文件

     1)百度 

            

            

             

             复制yum源:https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

     2)下 yum 源

           将上边赋值的 yum 源:https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

           使用wget 命令 下载到 /etc/yum.repos.d/ 目录下;

           命令:wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

           

           这一步本地虚拟机下载失败,转到阿里云上下载的

     3)验证下载的yum源是否可用

          命令:yum repolist

          

2、卸载已有的Docker

     命令:docker --version 或 docker -v 查看当前linux系统是否安装了Docker

                若安装了docker 会显示docker版本号,否则显示 “bash: docker: 未找到命令...”

     若当前系统已经安装了docker,则执行下面的命令来卸载Docker

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

3、安装Docker-ce(免费社区版本)

     在系统中直接安装docker-ce即可,此为docker daemon,所有依赖将被yum自动安装,包含

     docker client等等;

     安装命令:yum -y install docker-ce

     注意:安装命令copy 时由于编码的原因可能报

              “'ascii' codec can't decode byte 0xc2 in position 1: ordinal not in range(128)”

     

     

     没报错就表示安装成功

4、配置 Docker Daemon启动文件

     上边Docker-ce 安装成功后先别忙着启动,先配置 Docker Daemon启动文件,

    即docker.service;目录:/usr/lib/systemd/system/docker.service

     由于Docker 使用过程中会对CentOSc操作系统中的 iptables 防火墙中的FORWARD链

     默认规划产生影响,以及需要让Docker Daemon接受用户自定义的 daemon.json 文件,

     所以需要对使用者要求进行更改docker.service

     

     1)修改 docker.service 文件

           docker.service 只需要改动2点:

          (1)将 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

                   改成 ExecStart=/usr/bin/dockerd

          (2)在ExecStart下面添加一行:ExecStartPost=/sbin/iptables -P FORWARD ACCEPT,

                   表示docker启动后将 FORWARD 防火墙状态设置为 ACCEPT

            

     5、重写加载 Docker Daemon启动文件

          命令:systemctl daemon-reload

                     

     6、启动Docker

          命令:systemctl start docker,若命令执行没有输出表示启动成功

                     systemctl restart docker  重启docker

                      

     7、设置Docker 开机自启动

           命令:systemctl enable docker,

                     

           该命令可能会报错误:Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

                       解决方式请参考:关于在Contos7安装docker出现Created symlink from /路径/路径/...的问题-CSDN博客

   8、查看Docker 版本

        命令:docker version

                  

四、配置Docker镜像加速器

       由于国内访问国外的Docker容器镜像仓库比较慢,因此国内企业创建了容器加速器以方便

       国内用户使用容器镜像,如阿里云的容器镜像加速器

       阿里云的容器镜像加速器配置步骤:

       1、登录阿里云服务器官网,进入控制台首页搜索 “容器镜像服务acr”,进入 容器镜像服务acr

            控制台,然后点击:镜像工具—> 镜像加速器,在操作文档项选择“CentOS”,

             如下图所示:

                 

     

      2、创建配置文件 /etc/docker/daemon.json,并编辑文件 daemon.json,在该文件中写入

            "registry-mirrors": ["https://qgxd9od5.mirror.aliyuncs.com"]

             如下图所示:

             

      3、执行命令 命令 systemctl daemon-reload 重新加载 daemon 文件,然后

            执行命令 systemctl restart docker  重启docker服务

            如下图所示:

                 

       

http://www.xdnf.cn/news/32167.html

相关文章:

  • 【工具变量】A股上市公司信息披露质量KV指数测算数据集(含do代码 1991-2024年)
  • 青少年编程与数学 02-016 Python数据结构与算法 29课题、自然语言处理算法
  • 黑马Java基础笔记-1
  • 计算机网络——常见的网络攻击手段
  • 面试题之如何设计一个秒杀系统?
  • 编程语言基础 - C++ 面试题
  • jenkins尾随命令
  • word选中所有的表格——宏
  • ETF价格相关性计算算法深度分析
  • Java Stream 复杂场景排序与分组技术解析与示例代码
  • 蓝桥杯 蜗牛 动态规划
  • 遨游科普:防爆平板是指什么?有哪些应用场景?
  • 使用vue2技术写了一个纯前端的静态网站商城-鲜花销售商城
  • javassist
  • Python concurrent.futures模块的ProcessPoolExecutor, ThreadPoolExecutor类介绍
  • 在 Node.js 中使用原生 `http` 模块,获取请求的各个部分:**请求行、请求头、请求体、请求路径、查询字符串** 等内容
  • Python爬虫实战:获取网易新闻数据
  • Windows系统安装`face_recognition`
  • 2. ubuntu20.04 和VS Code实现 ros的输出 (C++,Python)
  • DeepSeek与Napkin:信息可视化领域的创新利器
  • [matlab]南海地形眩晕图代码
  • Github 2025-04-19Rust开源项目日报 Top10
  • Prompt-Tuning 提示词微调
  • 机器学习核心算法全解析:从基础到进阶的 18 大算法模型
  • MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
  • 10软件测试需求分析案例-查询学习信息
  • 详讲Linux下进程等待
  • Go-zero框架修改模版进行handler统一响应封装
  • 手撕 简易HashMap
  • YOLO11改进-Backbone-使用MobileMamba替换YOLO backbone 提高检测精度