Docker介绍安装及使用

news2024/11/18 9:43:19

在这里插入图片描述

目录

  • 引言
  • 一、什么是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来完成各种应用场景。

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

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

相关文章

im6ull学习总结(三-五)freetype显示正行字

知识补充 笛卡尔坐标系 这里笛卡尔坐标系就是初高中学的直角坐标系的第一象限 lcd坐标系则不同 这两个坐标系如何转换 观察两个坐标系 点&#xff08;x,y&#xff09;的x坐标在两个坐标系中相同&#xff0c;纵坐标&#xff08;y&#xff09;存在着yV-yV V是整个屏幕的行数的像…

基于RNN的模型

文本数据是一种典型的具有序列结构的数据&#xff0c;因为文本通常是由一系列的词语或字符组成的序列。每个词语或字符在文本中都有特定的位置和顺序&#xff0c;这种有序的结构对于理解和处理文本的含义至关重要。因此&#xff0c;多数情况下需要使用时间序列建模来完成相应的…

C/C++ 堆排序

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;数据结构_仍有未知等待探索的博客-CSDN博客 欢迎大家来指教&#xff01; 一、前言 今天要介绍的是堆排序。 首先什么是堆&#xff1f;简而言之&#xff0c;堆就是二叉树的数组形式&#xff0c;用数组来存…

【C++】类和对象之匿名对象友元内部类

目录 一、匿名对象 1、基础格式 2、使用场景 二、友元 1、友元函数 2、友元类 三、内部类 1、概念 2、特性 四、拷贝对象时的一些编译器优化 1、函数传参 2、对象返回 一、匿名对象 1、基础格式 【注意】 &#x1f7e2;匿名对象的声明周期只有当前行&#xff0c;进入…

推荐熊猫电竞赏金电竞系统源码

熊猫电竞赏金电竞系统源码&#xff0c;包含APP、H5和搭建视频教程&#xff0c;支持运营级搭建&#xff0c;这套源码是基于ThinkPHPUniaapp框架开发的。 系统是一套完整的电竞平台开发源码&#xff0c;包括赛事管理、用户系统、竞猜系统、支付系统等模块。源码结构清晰&#xff…

OpenGL排坑指南—贴图纹理绑定和使用

一、前言 在OpenGL学习 的纹理这一章中讲述了纹理贴图的使用方式&#xff0c;主要步骤是先创建一个纹理的对象&#xff0c;和创建顶点VAO类似&#xff0c;然后就开始绑定这个纹理&#xff0c;最后在循环中使用&#xff0c;有时候可能还要用到激活纹理单元的函数。然而&#xff…

【漏洞复现】先锋WEB燃气收费系统文件上传漏洞 1day

漏洞描述 /AjaxService/Upload.aspx 存在任意文件上传漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作…

【算法】增减序列(贪心,差分)

题目 给定一个长度为 n 的数列 a1,a2,…,an&#xff0c;每次可以选择一个区间 [l,r]&#xff0c;使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样&#xff0c;并求出在保证最少次数的前提下&#xff0c;最终得到的数列可能有多少种…

如何下载 DEM数字高程数据(SRTM和COPERNICUS)

数字高程模型&#xff08;Digital Elevation Model&#xff0c;DEM&#xff09;是地球表面的数字表示&#xff0c;以地形高程信息的形式存在。DEM通常以栅格或点云的形式存在&#xff0c;其中每个单元&#xff08;栅格或点&#xff09;都具有对应的高程数值。DEM可以使用各种技…

MYSQL篇--锁机制高频面试题

Mysql锁机制 1对mysql的锁有了解吗&#xff1f; 首先我们要知道&#xff0c;mysql的锁 其实是为了解决在并发事务时所导致的数据不一致问题的一种处理机制&#xff0c;也就是说 在事务的隔离级别实现中&#xff0c;就需要利用锁来解决幻读问题 然后我们可以聊到锁的分类 按锁…

Windows安装和使用kafka

一、安装kafka 由于kafka依赖jdk和zookeeper&#xff0c;安装kafka之前需要先安装jdk和zookeeper&#xff0c;也可以使用kafka自带的zookeeper。安装jdk可以参考&#xff1a;Windows和Linux安装jdk&#xff0c;此处使用kafka自带的zookeeper&#xff0c;不单独安装。 下面在Wi…

Python列表(list)

目录 列表列表的创建与删除访问列表元素index() 方法 列表的遍历添加&#xff0c;修改和删除列表元素添加修改删除 对列表统计和计算count() 方法如需确定列表中有**多少元素**&#xff0c;请使用 len() 方法&#xff1a;检查项目是否存在**复制列表****合并两个列表****list()…

Win10安装配置Redis,修改密码

一、下载Redis tporadowski 提供了 支持 Windows平台的 Redis 安装包&#xff0c;目前仍在维护&#xff0c;目前最新版本是 5.0.14&#xff0c;更新速度跟Redis官网也相差好几个大版本。 下载地址&#xff1a;https://github.com/tporadowski/redis/releases 二、Redis 安装 …

极客时间-如何降低用户鉴权的流量压力

背景 内容是极客时间-徐长龙老师的高并发系统实战课的个人学习笔记&#xff0c;欢迎大家学习&#xff01;https://time.geekbang.org/column/article/596644 使用Session方式实现用户的用户鉴权 优点 信息都在服务端储存&#xff0c;对客户端不暴露任何用户敏感的数据信息 缺…

SQL-修改表操作

目录 DDL-表操作-修改 添加字段 &#xff08;方括号内容可选&#xff09; 修改字段 修改指定字段的数据类型 修改字段名和字段类型 删除字段 修改表名 删除表 删除指定表&#xff0c;并重新创建该表 总结 &#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦…

Window平台安装MongoDB

在部署前需要在官网先确定系统对应的Mongo DB版本。 本机电脑为Window10&#xff0c;所以这里以MongoDB 6.0版本。 1 在官网下载安装包 2 安装MongoDB MongoDB Compass 是一个图形界面管理工具&#xff0c;如果勾选了安装会花费长一点时间&#xff0c;可以取消掉勾选&#xff…

[UI5] ODATA V4中的CRUD

文章目录 前言一、Read二、Create三、Update四、Delete 前言 ODATA V4在CRUD方面与V2截然不同。 这篇文章简单介绍V4中是如何进行CRUD操作 一、Read Model不再有read方法&#xff0c; 一般是把Path绑定到View中进行读取&#xff0c; 如果需要额外的读取数据&#xff0c;可使用…

树状结构查询 - 华为OD统一考试

OD统一考试 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 通常使用多行的节点、父节点表示一棵树&#xff0c;比如&#xff1a; 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后&#xff0c;请打印出来树中他的所有下层节点。 …

Python: Spire.PDF-for-Python

# encoding: utf-8 # 版权所有 2024 ©涂聚文有限公司 # 许可信息查看&#xff1a; # 描述&#xff1a; # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 3.11 # Datetime : 2024/1/11 10:32 # User : geovindu # Product : PyChar…

TypeScript类型挑战:实现内置的Omit实用类型

掌握 TypeScript Omit 泛型&#xff0c;一起完成 Type 挑战&#xff0c;巩固 TypeScript 知识。 为了帮助读者更好地巩固 TypeScript 的知识&#xff0c;我从 Github 上的 type-challenges 库中选择了几十个挑战&#xff0c;与您一起完成类型挑战。 挑战 实现内置的 Omit&…