Docker介绍安装及使用

在这里插入图片描述

目录

  • 引言
  • 一、什么是Docker?
  • 二、Docker的优势
  • 三、Docker的架构
  • 四、Docker的安装
  • 五、Docker的基本使用
  • 六、Docker与传统虚拟化的比较
  • 七、Docker的应用场景
  • 八、总结

引言

在现代的软件开发和部署中,容器化技术已经成为了一种趋势。Docker作为容器化技术的领先者,已经被广泛应用于云计算、大数据、微服务等领域。本文从Docker的概念、优势、架构、基本使用等方面进行详细介绍,希望能够让读者深入了解Docker并掌握其基本使用。

一、什么是Docker?

Docker是一种开源的容器化技术,最初由Docker Inc.公司开发,其主旨在于为应用程序开发提供更加快速、便捷、一致的运行环境。Docker可以将应用程序及其依赖项打包为容器,在不同的系统上运行,实现了代码的跨平台移植性。

二、Docker的优势

相较于传统的虚拟机技术,Docker具有以下优势:

易于部署:Docker容器可以在不同的平台上运行,大大降低了应用程序的部署成本。

资源占用更少:Docker容器与虚拟机不同,容器与宿主机共享内核,因而运行所需的资源更少。

更加高效:Docker容器可以快速启动、停止,极大地提高了应用程序的开发和运行效率。

一致的运行环境:Docker容器可以在不同的平台上运行,且容器内的运行环境均为一致,从而保证了应用程序的可靠性和稳定性。

三、Docker的架构

Docker的架构主要包括以下几个组件:

Docker客户端:由命令行工具或Web UI界面提供给用户进行操作的界面。

Docker主机:运行Docker进程的物理或虚拟机器。

Docker仓库:用来存放Docker镜像的服务,可以理解为代码仓库。

Docker镜像:打包好的应用程序及其依赖项,可被发布和复制,作为容器启动的基础。

Docker容器:镜像的运行实例,可以被启动、停止、删除等。

四、Docker的安装

Docker支持运行CentOS版本:CentOS 7.X
内核版本检查: uname -r
卸载可能存在的旧版本
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
旧版本的docker叫做docker或者docker-engine,如果有安装,先卸载其以及其依赖,新版本的
docker叫做docker-ce
docker-ce(社区版,免费)
docker-ee(专业版,收费)
安装必要的系统工具: yum install -y yum-utils device-mapper-persistent-data lvm2
添加docker-ce安装源: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
配置阿里云Docker Yum源: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存: yum makecache fast
yml.pid占用: – rm -f /var/run/yum.pid
安装docker-CE: yum -y install docker-ce
1)默认安装的是最新版本的稳定版
2)查看版本列表请使用如下命令:
yum list docker-ce --showduplicates | sort -r
docker-engine
3)如果要安装特定版本的docker-CE请使用如下命令格式:
yum install docker-ce

五、Docker的基本使用

基本操作

  • 查看服务状态
    systemctl status docker
  • 启停服务
    systemctl start docker
    systemctl stop docker
    systemctl restart docker
  • 开机自启
    systemctl enable docker
    systemctl disable docker

仓库+镜像
Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下

(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库

  • 配置加速器(通过阿里云控制台获得加速地址)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://39o6ydhb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

输入
cat /etc/docker/daemon.json
回车,有下面这个说明加速器配好了
{
“registry-mirrors”: [“https://39o6ydhb.mirror.aliyuncs.com”]
}
然后进行拍照保存

  • 下载镜像
    docker pull ngninx
    回车
    下载好了之后 docker images回车
    在这里插入图片描述

容器
容器是Docker的另一个核心概念。简单来说,容器是镜像的一个运行实例。
镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态
创建容器

docker create -it centos:latest
docker create -it --name centos01 centos:latest
centos:latest 即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否
存在指定的镜像,
不存在就从公有仓库下载
-it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端
--name:指定生成的容器的名字,允许空,如果不指定会自动生成

启动、停止、重启容器
docker start 容器ID|name|name:tag
docker stop 容器ID|name|name:tag
docker restart 容器ID|name|name:tag
查看当前的容器
docker ps
docker ps -a
docker pull 镜像名
获取一个 centos 系统的基础镜像可以使用如下的命令:
docker pull centos (未指定版本一般会使用latest(最新的)版本)
docker pull centos:版本号 (或者直接指定版本)
docker images
查看image位置
cd /var/lib/docker/containers (/var/lib/docker为docker默认安装目录) && ll
docker rmi centos
docker rmi -f centos:latest
如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。
正确做法:先删除依赖该镜像的所有容器, 再来删除镜像
删除容器
docker rm 容器ID
docker rm -f 容器ID
进入容器
docker exec -it 容器ID/容器NAME /bin/bash
docker exec -it 容器ID/容器NAME bash (简写)
退出容器
退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】
如果不想继续运行:按【ctrl+d】或输入exist

六、Docker与传统虚拟化的比较

传统虚拟化技术需要进行大量的资源分配和管理,每个虚拟化的操作系统都需要独立的内核和系统资源,导致系统启动缓慢,占用资源大,容易出现性能瓶颈。而Docker容器的优势在于,它们是在宿主机器上运行的,共享系统内核和底层资源,因此启动速度较快,开销较小,且镜像的构建和部署和容器的启动、停止等操作都非常快速和简便。不过Docker容器也存在一些限制,例如它们是基于宿主机器的环境而运行的,因此在某些场景下可能不适用。

七、Docker的应用场景

微服务
Docker容器可以很好地支持微服务架构,每个服务都运行在独立的容器中,实现了服务模块化和高度可扩展性。

多环境开发
开发人员可以使用Docker来构建开发、测试和生产环境,保证了这些环境的一致性,在测试和上线时可以预测和减少错误。

应用程序打包和交付
Docker容器可以将应用程序及其依赖项打包为一个单一的容器,方便交付和分布,并且保证了应用程序的一致性和可靠性。

云部署
在云计算场景下,Docker可以在虚拟机和基础设施层之间提供一层抽象,显著降低了应用程序部署的成本和管理难度。

八、总结

Docker这一容器化技术将应用程序的开发、部署和交付的流程变得更加高效、灵活和便捷,并且能够支持微服务架构、多环境开发、应用程序打包和交付、云部署等多种应用场景。希望本文能够帮助读者深入了解Docker的特点与优势,并在实践中运用Docker来完成各种应用场景。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Centos7 系统使用Playbook批量部署多台LNMP环境

使用Playbook批量部署多台LNMP环境 配置absible源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo yum -y install ansible 配置主机清单 定义…

常见的加密算法

加密算法 AES 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥&#xff0c;具体的加密流程如下图&#xff1a; RSA RSA 加密算法是一种典型的非对称加密算法&am…

山西电力市场日前价格预测【2024-01-15】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-01-15&#xff09;山西电力市场全天平均日前电价为399.10元/MWh。其中&#xff0c;最高日前电价为583.33元/MWh&#xff0c;预计出现在18:15。最低日前电价为275.09元/MWh&#xff0c;预计…

第 3 场 蓝桥杯小白入门赛 解题报告 | 珂学家 | 单调队列优化的DP + 三指针滑窗

前言 整体评价 T5, T6有点意思&#xff0c;这场小白入门场&#xff0c;好像没真正意义上的签到&#xff0c;整体感觉是这样。 A. 召唤神坤 思路: 前后缀拆解 #include <iostream> #include <algorithm> #include <vector> using namespace std;int main()…

二分图最大匹配——匈牙利算法详解

文章目录 零、前言一、红娘牵线二、二分图最大匹配2.1概念2.2交替路2.3增广路2.4匈牙利算法2.4.1算法原理2.4.2算法示例2.4.3代码实现 3.OJ练习3.1模板3.2棋盘覆盖3.3車的放置 零、前言 关于二分图的基本知识见&#xff1a;二分图及染色法判定 一、红娘牵线 一位红娘近日遇到一…

Word插件-大珩助手-手写电子签名

手写签名 支持鼠标写&#xff0c;支持触摸屏写&#xff0c;点击画笔按钮切换橡皮擦&#xff0c;支持清空画板重写&#xff0c;点击在word中插入签名&#xff0c;可插入背景透明的签字图 素材库-保存签名 将写好的签字图复制粘贴到素材库中&#xff0c;以便永久使用&#xff…

详解Java之Spring框架中事务管理的艺术

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;咱们今天聊聊Spring框架中的事务管理。不管是开发小型应用还是大型企业级应用&#xff0c;事务管理都是个不可避免的话题。那么&#xff0c;为什么事务管理这么重要呢&#xff1f;假设在银行系统中转账时&#x…

OpenCV——多分辨率LBP的计算方法

目录 一、算法原理1、原理概述2、参考文献 二、代码实现三、结果展示 OpenCV——多分辨率LBP的计算方法由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述 基本LBP算子虽然在早期…

Qt/QML编程学习之心得:使用camera摄像头(35)

汽车应用中,camera起到了越来越多的作用,数字化的作用,这点无可争议,而作为GUI设计工具,如何让Camera类的应用能更好的发挥作用呢? You can use Camera to capture images and movies from a camera, and manipulate the capture and processing settings that get appl…

关于 setData 同步异步的问题

小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步&#xff0c;因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步&#xff0c;…

Linux Ubuntu搭建我的世界Minecraft服务器实现好友远程联机MC游戏

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 前言 Li…

C语言之从浅入深一步一步全方位理解指针【附笔试题】

文章目录 前言从浅入深理解指针《第一阶段》一、内存和地址1.1 内存1.2 究竟该如何理解编址 二、指针变量和地址2.1 取地址操作符&#xff08;&&#xff09; 三、指针变量和解引用操作符&#xff08;*&#xff09;3.1 指针变量3.2 如何拆解指针类型3.3 解引用操作符 四、指…

web网页设计学习记录(五)

1.如何设置背景色呢&#xff1f; 格式为&#xff1a; <body bgcolor"色彩值"> “色彩值”可以为色彩的英文名或相应十六进制值。 2.如何将图片作为背景呢&#xff1f; 格式为&#xff1a;<body background"图片文件名"> 使用<body&g…

具于xilinx FPGA的可动态配置DDS频率控制字的DDS IP核使用例程详解

目录 1 概述2 IP examples功能3 IP 使用例程4注意事项5 DDS IP Examples下载位置 1 概述 本文用于讲解xilinx IP 的dds ip examples&#xff08;动态配置频率&#xff09;的功能说明&#xff0c;方便使用者快速上手。 2 IP examples功能 本examples 是月隐编写的针对DDS的使…

一分钟找到所有的中文核心期刊

1.进入中国知网找到出版物检索 2.在出版来源导航这里选择期刊导航 3.右边拉到底选择核心期刊导航 4.选择自己专业的期刊即可

软件设计不是CRUD(10):低耦合模块设计理论——业务抽象:从需求中提取业务维度

接上文《软件设计不是CRUD(9):低耦合模块设计理论——设计落地所面临的挑战》 2、什么是业务抽象 业务抽象是一种将需求落地成模块功能的设计思想,是对业务需求和技术设计进行转换、隔离的一种分析方法。经过业务抽象后的业务模块一般具有较高的业务屈服度,能更大程度满…

Hex Editor的使用教程(VS Code)

Hex Editor&#xff08;十六进制编辑器&#xff09;是一种用于查看和编辑计算机文件的低级别编辑工具。与常规文本编辑器不同&#xff0c;它允许用户直接查看和修改文件的二进制数据。在 Hex Editor 中&#xff0c;数据通常以十六进制&#xff08;hex&#xff09;格式显示&…

Arduino| IDE下载、安装和设置以及开发板的连接

IDE下载、安装和设置以及开发板的连接 IDE下载IDE安装IDE设置首选项——设置语言、字体、主题、地址等等开发板管理器——添加开发板 开发板的连接 IDE下载 第一步&#xff1a;进入Arduino官网https://www.arduino.cc。 第二步&#xff1a;选择导航栏的Software&#xff0c;然…

【论文阅读笔记】Prompt Tuning for Parameter-efficient Medical Image Segmentation

Fischer M, Bartler A, Yang B. Prompt tuning for parameter-efficient medical image segmentation[J]. Medical Image Analysis, 2024, 91: 103024. 【开源】 【核心思想】 本文的核心思想是提出了一种用于医学图像分割的参数高效的提示调整&#xff08;Prompt Tuning&…

Flutter开发进阶之动画

Flutter开发进阶之动画 在Flutter中&#xff0c;动画是至关重要的一个部分&#xff0c;它能够为应用程序提供更加丰富和生动的用户体验&#xff0c;Flutter中的动画系统是UI框架的核心功能之一&#xff0c;也是开发者学习Flutter框架的重要部分&#xff0c;由于动画原理在所有…