CentOS 7 安装 Docker 的详细步骤

文章目录

  • Docker简介
  • 1.更新
  • 2.安装必要的软件包
  • 3.添加Docker仓库
  • 4.安装
  • 5.安装后的一些常规设置及常用的命令
    • 5.1 启动 Docker
    • 5.2 Docker 在系统启动时自动运行
    • 5.3 运行一个 Hello World 镜像
    • 5.4 查看docker运行状态
    • 5.5 docker ps
    • 5.6 查看docker版本
  • 6.安装种常见的错误
    • 错误1:yum-config-manager:找不到命令
  • 7.Docker的使用场景

欢迎来到这篇关于在 CentOS 7 上安装 Docker 的教程。在本篇博客中,我们将介绍在 CentOS 7 操作系统上如何安装 Docker。Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。下面让我们开始吧。

Docker简介

Docker 是一个开源的容器化平台,它可以帮助用户将应用程序和服务打包到 Docker 容器中,并提供一套简单而强大的命令行工具来管理容器和镜像。与传统虚拟机相比,Docker 容器更加轻量级、便捷、高效,并且可以实现跨平台、跨云、快速部署和扩展等优点。

通过 Docker,用户可以创建和运行多个容器,每个容器相互隔离、独立运行,就像是一个轻量级的虚拟机。用户可以使用 Docker 提供的命令行工具来管理容器和镜像,如构建、运行、停止、删除、导入和导出等操作,还可以通过 Docker Hub 等镜像仓库下载和分享 Docker 镜像。

Docker 的应用场景非常广泛,可以用于开发环境搭建、CI/CD 自动化部署、微服务架构、容器云平台、容器编排等方面。在企业级应用中,Docker 已经成为重要的容器化技术之一,并被广泛应用于生产环境。

总之,Docker 是一个非常流行的容器化平台,提供了一种新的方式来构建、发布和运行应用程序和服务,其轻量级、可移植、易于管理和扩展的优点,使其成为越来越多开发者和企业的首选技术。

一个完整的Docker有以下几个部分组成:

  • DockerClient客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • DockerContainer容器

docker中有这样几个概念:

  • dockerfile
  • image
  • container
    实际上你可以简单的把image理解为可执行程序,container就是运行起来的进程。
    那么写程序需要源代码,那么“写”image就需要dockerfile,dockerfile就是image的源代码,docker就是"编译器"。
    因此我们只需要在dockerfile中指定需要哪些程序、依赖什么样的配置,之后把dockerfile交给“编译器”docker进行“编译”,也就是docker build命令,生成的可执行程序就是image,之后就可以运行这个image了,这就是docker run命令,image运行起来后就是docker container。
    在这里插入图片描述

1.更新

yum update -y

2.安装必要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加Docker仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.安装

yum install docker-ce

5.安装后的一些常规设置及常用的命令

5.1 启动 Docker

systemctl start docker

5.2 Docker 在系统启动时自动运行

systemctl enable docker

5.3 运行一个 Hello World 镜像

[root@10 ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:4f53e2564790c8e7856ec08e384732aa38dc43c52f02952483e3f003afbf23db
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

5.4 查看docker运行状态

[root@10 ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset:                                                            disabled)Active: active (running) since 三 2023-09-27 08:47:58 CST; 12min agoDocs: https://docs.docker.comMain PID: 1536 (dockerd)Tasks: 34Memory: 146.8MCGroup: /system.slice/docker.service└─1536 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/contai...927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.296317622+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.457659247+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.570299351+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.686028344+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.868276595+...6
9月 27 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.868391631+..."
9月 27 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.911613133+..."
9月 27 08:47:58 10.0.1.37 systemd[1]: Started Docker Application Container E...e.
9月 27 08:59:16 10.0.1.37 dockerd[1536]: time="2023-09-27T08:59:16.121080761+..."
9月 27 08:59:22 10.0.1.37 dockerd[1536]: time="2023-09-27T08:59:22.111055567+..."
Hint: Some lines were ellipsized, use -l to show in full.

5.5 docker ps

该命令是用来查询当前容器的

#查询全部状态的容器
docker ps -a 
CONTAINER ID   IMAGE          COMMAND                  CREATED        STATUS       PORTS   NAMES        SIZE                                                                                      SIZE
e90b8831a4b8   nginx          "/bin/bash -c 'mkdir "   11 weeks ago   Up 4 hours           my_nginx     35.58 kB (virtual 109.2 MB)
00c6131c5e30   telegraf:1.5   "/entrypoint.sh"         11 weeks ago   Up 11 weeks          my_telegraf  0 B (virtual 209.5 MB)

5.6 查看docker版本

[root@10 ~]# docker version
Client: Docker Engine - CommunityVersion:           24.0.6API version:       1.43Go version:        go1.20.7Git commit:        ed223bcBuilt:             Mon Sep  4 12:35:25 2023OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          24.0.6API version:      1.43 (minimum version 1.12)Go version:       go1.20.7Git commit:       1a79695Built:            Mon Sep  4 12:34:28 2023OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.22GitCommit:        8165feabfdfe38c65b599c4993d227328c231fcarunc:Version:          1.1.8GitCommit:        v1.1.8-0-g82f18fedocker-init:Version:          0.19.0GitCommit:        de40ad0

6.安装种常见的错误

错误1:yum-config-manager:找不到命令

[root@10 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager:找不到命令

解决:

yum -y install yum-utils

7.Docker的使用场景

  1. 应用程序的开发和测试:Docker可以为应用程序提供稳定的运行环境,使开发人员可以轻松在不同的系统上测试和运行软件,而无需考虑与操作系统或其他应用程序的冲突。

  2. 持续集成和持续交付:Docker可以在不同阶段的开发周期中提供完全相同的环境,并且可以在部署到生产服务器之前快速迭代和测试应用程序。

  3. 服务器的管理和部署:Docker可以帮助管理员自动化应用程序的部署和操作,也可以轻松地横向扩展和缩小服务器,以便根据需要扩展或减少服务。

  4. 云计算和容器服务:Docker可以作为云计算平台的基础架构,例如Kubernetes、Mesos或Docker Swarm,提供高度扩展、可靠性和安全性。

  5. 多租户应用程序的隔离:Docker可以为多租户应用程序提供隔离的容器,从而不同租户之间的应用程序和数据可以彼此隔离,提高了安全性。

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

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

相关文章

【CMU15-445 Part-14】Query Planning Optimization I

Part14-Query Planning & Optimization I SQL is Declarative,只告诉想要什么而不需要说怎么做。 IBM System R是第一个实现query optimizer查询优化器的系统 Heuristics / Rules 条件触发 静态规则,重写query来remove 低效或者愚蠢的东西&#xf…

Ubuntu性能分析-ftrace 底层驱动

1、框架介绍 ftrace内核驱动可以分为几部分:ftrace framework,RingBuffer,debugfs,Tracepoint,各种Tracer。 ftrace框架是整个ftrace功能的纽带,包括对内和的修改,Tracer的注册,RingBuffer的控制等等。 RingBuffer是静态动态ftrace的载体。 debugfs则提供了用户空间…

华为智能企业上网行为管理安全解决方案(1)

华为智能企业上网行为管理安全解决方案(1) 课程地址方案背景需求分析企业上网行为概述企业上网行为安全风险分析企业上网行为管理需求分析 方案设计组网架构设备选型设备简介行为管理要点分析方案功能概述 课程地址 本方案相关课程资源已在华为O3社区发…

【目标检测】——Gold-YOLO为啥能超过YOLOV8

华为 https://arxiv.org/pdf/2309.11331.pdf 文章的出发点:FPN中的信息传输问题 1. 简介 基于全局信息融合的概念,提出了一种新的收集和分发机制(GD),用于在YOLO中进行有效的信息交换。通过全局融合多层特征并将全局信…

【学习笔记】深度学习分布式系统

深度学习分布式系统 前言1. 数据并行:参数服务器2. 流水线并行:GPipe3. 张量并行:Megatron LM4. 切片并行:ZeRO5. 异步分布式:PATHWAYS总结参考链接 前言 最近跟着李沐老师的视频学习了深度学习分布式系统的发展。这里…

第5讲:v-if与v-show的使用方法及区别

v-if条件判断 v-if是条件渲染指令,它根据表达式的真假来删除和插入元素,它的基本语法如下: v-if “expression” expression是一个返回bool值的表达式,表达式可以是一个bool属性,也可以是一个返回bool的运算式 &#…

【从入门到起飞】JavaSE—Stream流

🎊专栏【JavaSE】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🥰欢迎并且感谢大家指出我的问题 文章目录 🍔Stream流的作用🍔Stream流的使用步骤🎄获取Strea…

基于css变量轻松实现网站的主题切换功能

我们经常看到一些网站都有主题切换,例如vue官方文档。那他是怎么实现的呢? 检查元素,发现点击切换时,html元素会动态的添加和移除一个class:dark,然后页面主题色就变了。仔细想想,这要是放在以前&#xff0…

电缆隧道在线监测系统:提升电力设施安全与效率的关键

随着城市化进程的加快,电力电缆隧道在保障城市电力供应方面的地位日益重要。然而,电缆隧道环境复杂,容易受到多种因素影响,如温度、湿度、烟雾、水位等,严重威胁电力设施的安全与稳定运行。在此背景下,电缆…

修改switch Nand无线区码 以支持高频5G 信道

环境:NS switch 问题:日版,港版无法连接大于44信道的5G WIFI 解决办法:修改PRODINFO.dec的WIFI 区域码 背景:我的switch是最早买的港版的一批,WIFI 只能连接日本的信道,家里的路由器是国行的&am…

国庆day1---消息队列实现进程之间通信方式代码,现象

snd&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)typedef struct{ long msgtype; //消息类型char data[1024]; //消息正文 }Msg;#define SIZE sizeof(Msg)-sizeof(long)int main…

释放潜力:人工智能对个性化学习的影响

人工智能有潜力通过使个性化学习成为一种实用且可扩展的方法来彻底改变教育。它使教育工作者能够满足每个学生的独特需求&#xff0c;促进参与并提高整体学习成果。然而&#xff0c;必须解决道德问题&#xff0c;并确保技术仍然是教育工作者手中的工具&#xff0c;为学生创造更…

Mysql——三、SQL语句(上篇)

Mysql 一、SQL语句基础1、SQL简介2、SQL语句分类3、SQL语句的书写规范 二、数据库操作三、MySQL 字符集1、变量2、utf8和utf8mb4的区别 四、数据库对象五、SELECT语句1、简单的SELECT语句2、SQL函数2.1 聚合函数2.2 数值型函数2.3 字符串函数2.4 日期和时间函数2.5 流程控制函数…

云原生开发:从容器到微服务的全栈指南

文章目录 什么是云原生开发&#xff1f;1. 容器化2. 微服务架构 云原生开发的优势1. 可伸缩性2. 高可用性3. 灵活性4. 快速交付 云原生开发的1. 学习曲线2. 复杂性3. 运维挑战 云原生开发的最佳实践1. 自动化部署2. 监控和日志3. 安全性4. 弹性设计5. 文档和培训 未来展望结论 …

C++ 迭代器(iterator)

迭代器介绍 迭代器&#xff08;iterator&#xff09;&#xff1a;容器类型内置的“指针” - 使用迭代器可以访问某个元素&#xff0c;迭代器也能从一个元素移动到另一个元素。 - 有迭代器的类型都拥有 begin 和 end 成员- begin&#xff1a;返回指向第一个元素&#xff08;或字…

博客无限滚动加载(html、css、js)实现

介绍 这是一个简单实现了类似博客瀑布流加载功能的页面&#xff0c;使用html、css、js实现。简单易懂&#xff0c;值得学习借鉴。&#x1f44d; 演示地址&#xff1a;https://i_dog.gitee.io/easy-web-projects/infinite_scroll_blog/index.html 代码 index.html <!DOCT…

知识工程---neo4j 5.12.0+GDS2.4.6安装

&#xff08;已安装好neo4j community 5.12.0&#xff09; 一. GDS下载 jar包下载地址&#xff1a;https://neo4j.com/graph-data-science-software/ 下载得到一个zip压缩包&#xff0c;解压后得到jar包。 二. GDS安装及配置 将解压得到的jar包放入neo4j安装目录下的plugi…

【数据结构--八大排序】之冒泡排序+选择排序+插入排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

ROS系统读取USB相机图像数据

ROS系统读取USB相机图像数据 前言usb_cam 功能包下载与编译摄像头选择连接摄像头可配置参数 前言 usb_cam功能包简介 为了丰富机器人与外界的交互方式&#xff0c;已经增加了与机器人的语音交互方式&#xff0c;不仅使机器人能够说话发声&#xff0c;还能听懂我们说的话&#…

26947-2011 手动托盘搬运车 学习记录

声明 本文是学习GB-T 26947-2011 手动托盘搬运车. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了手动托盘搬运车(以下简称托盘车)的结构参数、技术要求、试验方法、检验规则、 标志、包装、运输和贮存。 本标准适用于额定载荷…