Docker简介及安装

news/2024/9/18 9:00:58/文章来源:https://www.cnblogs.com/xyh9039/p/18374929

本系列将会与大家分享 Docker 的相关知识。本章主要简要介绍 Docker,并指导大家如何在 CentOS 7 上进行 Docker 的安装。废话不多说,下面我们直接进入主题。

一、Docker简介

Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)更重要的是容器性能开销极低。

Docker支持将软件编译成镜像;在镜像中支持各种软件配置好并发布,其他使用者可以直接使用配置好的镜像。运行中的镜像称之为容器,容器启动速度很快。类似于封装好的Windows系统,通过U盘直接安装即可,不需要进行系统配置软件。

1、Docker的应用场景

  • Web应用的自动化打包发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

2、Docker的优点

  • 快速、一致性的交付应用程序
  • 响应式部署和扩展
  • 充分利用虚拟机资源

二、Docker核心概念

Docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统中)

Docker客户端(Client):连接Docker主机进行操作;

Docker容器(Container):镜像启动后的实例,独立运行的一个或一组应用;

Docker镜像(Image):打包好的软件,用于创建Docker容器的模板;

Docker仓库(Respository):用于保存打包好的软件镜像;

1、关系示意图

2、Docker的基本使用方式

  • 在机器中安装Docker;
  • 在Docker仓库中寻找这个软件对应的镜像;
  • 使用Docker运行镜像,生成一个Docker容器;
  • 容器的启动或停止相当于对软件的启动和停止;

三、Docker的搭建

1、环境准备

1)检查Linux版本

Docker对Linux系统版本有一定的要求,确保你的系统版本满足Docker的最低要求。对于CentOS,通常需要CentOS 7或更高版本。

要求 CentOS 7 系统的内核版本高于 3.10,可通过如下指令查看版本:

[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_64

2)更新系统

sudo yum update

使用 sudo yum update 命令更新你的系统到最新版本,以确保所有依赖项都是最新的。

3)卸载旧版本的Docker(如果已安装)

sudo yum remove docker docker-common docker-selinux docker-engine

使用 sudo yum remove docker docker-common docker-selinux docker-engine 命令卸载旧版本的Docker及其相关组件。

2、安装Docker

1)安装必要的系统工具

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

执行 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 命令,安装Docker所需的一些基础软件包和工具。

2)添加Docker软件源

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

由于Docker的官方源在国外,下载速度可能较慢,因此建议使用国内的镜像源。执行类似 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 的命令(这里以阿里云为例),添加Docker CE的官方镜像源。

3)更新yum索引

sudo yum makecache fast

执行 sudo yum makecache fast 命令,更新yum的软件包索引。

4)安装Docker CE

sudo yum install docker-ce docker-ce-cli containerd.io

执行 sudo yum install docker-ce docker-ce-cli containerd.io 命令,安装Docker CE(社区版)、Docker CE CLI(命令行界面)和containerd.io(Docker的容器运行时)。

3、启动Docker并验证安装

1)启动Docker服务

sudo systemctl start docker

执行 sudo systemctl start docker 命令,启动Docker服务。

2)设置Docker开机自启(可选)

sudo systemctl enable docker

执行 sudo systemctl enable docker 命令,设置Docker服务开机自启。

3)验证Docker是否安装成功

docker --version

执行 docker --version 或 docker version 命令,查看Docker的版本信息,以验证Docker是否成功安装。

[root@localhost ~]# docker --version
Docker version 26.1.4, build 5650f9b

或者

[root@localhost ~]# sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

说明安装成功。

4)检查Docker服务状态

sudo systemctl status docker

如果Docker已安装并正在运行,你将看到类似“active (running)”的状态信息。

5)补充:查看当前可安装的Docker版本

yum list docker-ce --showduplicates | sort -r

 

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

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

相关文章

C程序设计语言(第2版新版)练习题1-9

练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。#include <stdio.h>int main(int argc, char *argv[]) {(void)argc;(void)argv;int c;int c_last = \0;while((c = getchar()) != EOF) {if (( != c) || ( != c_last)) {putchar(c);}c…

C# .NET CORE 知识点总结【基础篇】

心之所向,勇往直前!记录面试中的那些小事。面试题只是一道门,最好还是走进屋里看看。正文 结语本篇到此结束,如果有任何疑问或者指正,请发表在评论区。

相遇(容斥+最短路+分类,水紫)

第5题 相遇 查看测评数据信息给定一个有n个节点m条边的无向图,在某一时刻节点st上有一个动点a, 节点end上有一个动点b, 动点a向节点end方向移动,要求是尽快到达end点,与此同时,动点b向节点st方向移动,要求是尽快到达st点, 但是整个过程中a和b不能相遇,问两点不相遇一…

NYX靶机笔记

NYX靶机笔记 概述 VulnHub里的简单靶机 靶机地址:https://download.vulnhub.com/nyx/nyxvm.zip 1、nmap扫描 1)主机发现 # -sn 只做ping扫描,不做端口扫描 nmap -sn 192.168.84.1/24 # 发现靶机ip为 MAC Address: 00:50:56:E0:D5:D4 (VMware) Nmap scan report for 192.168.…

VS2022 Visual Studio Installer 一直卡在0%,或者下载速度慢的问题解决办法

vs2022 installer,安装失败的问题C:\Users\Administrator\AppData\Local\Temp到c盘查看日志,发现是下载一个叫 vs_installer.opc的东西失败了,直接复制日志里的https://aka.ms/vs/17/release/installer,下载,发现成功下载,然后放到installer安装器同级目录,重新打开setu…

[Java基础]虚拟线程

虚拟线程(Virtual Thread)是 JDK 而不是 OS 实现的轻量级线程(Lightweight Process,LWP),由 JVM 调度。许多虚拟线程共享同一个操作系统线程,虚拟线程的数量可以远大于操作系统线程的数量。 虚拟线程和平台线程有什么关系? 在引入虚拟线程之前,java.lang.Thread 包已经…

一台电脑配置两个Git账号(github和gitlab),不同仓库使用不同的git

我们工作时一般都是使用gitlab,工作电脑也一般配置的 git 是连接 gitlab 的,那么当我们如果想用同一个电脑实现不同仓库根据自己的需要到底是推送代码到github还是 gitlab,以及使用哪个账号,(比如如果想用工作电脑维护自己的 github 项目,但是怕后面被公司追究用工作电脑干…

DDD是软件工程的第一性原理?

本文书接上回《DDD建模后写代码的正确姿势》,关注公众号(老肖想当外语大佬)获取信息:最新文章更新;DDD框架源码(.NET、Java双平台);加群畅聊,建模分析、技术实现交流;视频和直播在B站。前提 本文需要以系列前文的逻辑链条和结论为前提,如果没有阅读过前文的,可以阅…

[TCP/IP]三次握手

三次握手TCP建立连接为什么需要三次握手 TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率,而用三次恰恰可以满足以上两方面的需求! TCP可靠传输的精髓:TCP连接的一方A,由操作系统动态随机选取一个32位长的序列号(Initial Sequence Nu…

预设型 DP

预设型 DP《美好的一天》--青春学概论 한 잔 술에 취해 잠긴 목엔 沉醉于一杯酒 갈라지는 목소린 다시 带着沙哑的嗓音 두 잔 자기 전엔 기분 좋음 入睡前饮下第二杯让心情愉悦 알 수 없는 세상에 빠져 陷入不可预知的世界 세 잔 또 네 잔 술에 빠진 又沉醉于第三杯第四杯 세상…

Nginx缓存服务

Nginx缓存服务 7.1 缓存配置语法 proxy_cache 配置语法 S yntax: proxy_cache zone | off; Default: proxy_cache off; Context: http, server, location//缓存路径 Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time…