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

安装 docker 详解

        在平常的开发工作中,我们经常需要部署项目。随着 Docker 容器的出现,大大提高了部署效率。Docker 容器包含了应用程序运行所需的所有依赖,避免了换环境运行问题。可以在短时间内创建、启动和停止容器,大大提高了应用的部署速度,能够快速响应业务需求的变化。那么,应该如何安装 docker 呢,下面总结一下 Docker 安装的基本步骤。

        Docker 支持多种 Linux 系统,对于 CentOS 系统,通常建议使用 CentOS 7 及以上版本,以确保系统能提供良好的兼容性和性能支持。可以使用 cat /etc/redhat-release 命令或者 lsb_release -a 查看 Linux 系统的发行版本。下面总结下Centos 7 下安装 Docker的基本步骤。

     1:卸载旧版 Docker

        如果未安装 Docker,那么移步到步骤2开始安装。如果已经安装 Docker,需要卸载旧版本 Docker,那么使用如下命令:

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

        卸载包括 dockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-logrotate 和 docker-engine。彻底移除旧版本 Docker 相关的程序和配置。

     2:设置 Docker 存储库

        安装 Docker ,需要先设置 Docker 的存储库,便于获取 Docker 相关软件包。

# 安装 yum-utils 包,它提供了 yum-config-manager 工具,yum-utils 提供的各种实用工具来更高效地管
# 理 yum 软件仓库和软件包
sudo yum install -y yum-utils
# 使用 yum-config-manager 添加 Docker 官方存储库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

     3:安装 Docker 引擎

        通过yum包管理工具安装了docker-cedocker-ce-clicontainerd.io这三个组件,搭建起 Docker 运行环境,使用户能够方便地进行容器化应用的部署和管理工作。

# 安装 Docker 社区版(Docker CE)及其 命令行界面工具 和 containerd
sudo yum install docker-ce docker-ce-cli containerd.io

     4:启动 Docker 服务并设置开机自启

        启动 Docker、停止 Docker

# 启动 Docker 服务
sudo systemctl start docker
# 停止 Docker 服务
sudo systemctl stop docker
# 设置 Docker 服务开机自启
sudo systemctl enable docker
# 查看开机自启是否设置成功
# 如果输出信息为 enabled,则表示 Docker 服务已成功设置为开机自启
# 如果输出信息为 disabled,则表示 Docker 服务未设置为开机自启
# 如果输出信息为 masked,表示该服务被禁用且无法启动
sudo systemctl is-enabled docker

     5:设置镜像加速器

        编辑 /etc/docker/daemon.json配置文件,如果不存在则手动创建,内容如下,如果修改了配置文件文件,需要重新加载配置文件并重启 Docker。

{
    "registry-mirrors": [
		"https://docker.mirrors.ustc.edu.cn",
        "https://dockerproxy.com",
        "https://docker.nju.edu.cn",
		"https://mirror.aliyuncs.com",
		"https://docker.m.daocloud.io",
		"https://hub.rat.dev",
        "https://hub-mirror.c.163.com",
		"https://mirror.ccs.tencentyun.com",
		"https://mirror.baidubce.com",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://github.com/ustclug/mirrorrequest",
        "https://registry.docker-cn.com"
    ]
}

       重新加载 Docker 配置文件:systemctl  daemon-reload

       重启 Docker:systemctl  restart  Docker

     6:验证 Docker 安装

# 查看 docker 运行状态
sudo systemctl status docker
# 测试拉取镜像是否能拉取镜像
docker run --rm hello-world

        运行systemctl status docker,查看信息,如果输出中包含 Active: active (running),则说明 Docker 服务已经成功启动,并且 dockerd 进程正在持续运行。可以使用 Docker 来创建、运行和管理容器
        docker run --rm hello-world 命令的主要功能是从 Docker Hub 拉取 hello-world 镜像(如果本地不存在该镜像),并基于此镜像创建一个新的容器来运行,运行结束后自动删除该容器。这个命令常被用于验证 Docker 是否正确安装和配置。 
        在执行命令后,首先提示 Unable to find image 'hello-world:latest' locally ,然后显示拉取镜像,最后显示 Status: Downloaded newer image for hello-world:latest,这表明 Docker 能够正常访问镜像仓库并下载镜像。如果 Docker 安装的有问题,可能会出现报错,导致无法拉取镜像。页面如下,则表面 Docker 安装成功。

     7:Docker Compose 容器编排

        Docker Compose 主要是容器编排,定义和运行多容器的工具。我们可以定义一个docker-compose.yml 文件,在里面可以定义多个服务,定义每个服务的镜像、容器名称、环境配置、端口信息、数据挂载、网络设置、重启方式等,里面可以定义多服务。文件编排完成后,可以通过
docker compose up -d 命令启动,可以看到具体的启动信息,命令后面带上 -d 命令窗口是非阻塞的,不阻塞当前命令窗口,不带 -d 可以在当前窗口查看容器启动的具体日志信息。关键命令如下:

        启动所有容器:docker compose  up -d

        停止容器:docker stop 容器id / 容器名称

        启动单个容器:docker compose up -d  服务名

        删除容器:docker rm  容器id / 容器名称

        删除镜像:docker rmi  镜像id

        在 Docker 20.10 版本之前,安装完 Docker 之后,使用 Docker compose 需要进行单独安装。在 Docker 20.10 版本之后,Docker Compose 以插件的形式集成到 Docker 中,Docker安装完成,默认安装了 Docker Compose,使用 docker compose version 查看是否成功安装。

        以上为安装 Docker 的基本步骤,主要是设置 Docker 存储库、安装 Docker 引擎 和 设置镜像加速器。使用 Docker Compose 容器编排,可以方便快捷的管理容器,进行容器的启动、停止等操作。


http://www.kler.cn/a/521140.html

相关文章:

  • 数据结构(树)
  • HTML5+SVG+CSS3实现雪中点亮的圣诞树动画效果源码
  • Elasticsearch有哪些应用场景?
  • 【C++ 动态规划】1024. 视频拼接|1746
  • 向量和矩阵算法笔记
  • Linux(Centos、Ubuntu) 系统安装jenkins服务
  • CSS all 属性
  • 单片机基础模块学习——DS1302时钟芯片
  • Linux 入门 常用指令 详细版
  • 第四节 提升专业和业务能力
  • mysql查询中常见函数
  • Day46:访问元组元素
  • Linux 系统错误处理简介
  • 基于语义-拓扑-度量表征引导的大语言模型推理的空中视觉语言导航
  • 好看的测试用例模板
  • 探索JavaScript前端开发:开启交互之门的神奇钥匙(二)
  • std::function的简易实现
  • 算法日记9:SC61滑动窗口(单调队列)
  • c++学习第十二天
  • 神经网络|(五)概率论基础知识-条件概率
  • 开源AI模型发布策略:平衡开放与质量的艺术
  • 香港维尔利健康科技集团重金投资,内地多地体验中心同步启动
  • 第 434 场周赛解题(超详细)
  • 动态规划复习总结2
  • 数据结构初阶之队列的介绍与队列的实现
  • 嵌入式学习笔记-杂七杂八