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

高可用篇_A Docker容器化技术_II Docker环境搭建和常见命令

原创作者:田超凡(程序员田宝宝)

版权所有,引用请注明原作者,严禁复制转载

Docker安装

Docker 要求 CentOS7 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker

1、通过 uname -r 命令查看你当前的内核版本

uname -r

  1. 使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update

该过程大概需要维持10分钟左右

  1. 卸载旧版本(如果安装过旧版本的话)

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

  1. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

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

  1. 设置yum

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

  1. 可以查看所有仓库中所有docker版本,并选择特定版本安装

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

  1. 安装docker

sudo yum install -y docker-ce     #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1

  1. 启动并加入开机启动

systemctl start docker

systemctl enable docker

  1. 验证安装是否成功(clientservice两部分表示docker安装启动都成功了)

docker version

Docker快速入门

Docker核心名词

镜像文件、容器、仓库

镜像:简单理解为就是一个安装包,里面包含容器所需要运行的的基础文件和配置信息

,比如:redis镜像、mysql镜像等。

镜像的来源方式:

  1. 自己做镜像  比如(自己开发微服务项目)
  2. 拉取别人制作好的镜像, 例如 nginx、mysql、redis等。

容器: 容器就是镜像运行的实例,容器状态分为:初创建、运行、停止、暂停、删除, 一个镜像可以创建多个不同的容器。每个镜像文件都有自己独立ip信息---轻量级的linux服务器 虚拟化,比如:镜像就是类  容器就是实例对象

仓库: 仓库可以简单理解为,专门存储镜像文件仓库, 类似于 谷歌手机市场,统一在

谷歌手机市场下载开发者的安装包。

Docker 公开仓库地址: Docker hub

https://hub.docker.com/

Docker官方仓库:https://hub.docker.com/ ----访问比较慢

宿主机:当前win7操作系统

需要制作镜像文件(springboot项目)------类似于开发者开发安装应用程序打包

需要将我们制作好的镜像文件提交到docker仓库中-----开发者将自己的app应用程序发布安卓手机助手中。

本地需要拉去我们docker仓库中下载镜像文件,在交给我们容器运行---用户从app市场中下载安装包运行。

1.在需要制作镜像文件,将该镜像文件发布到docker仓库

docker仓库 dockerhub ----谷歌安卓手机市场   国内加速镜像

阿里云、网易、科大()----360、小米、华为。

  1. 从docker仓库下载镜像文件-----用户从手机市场中,下载软件。
  2. docker运行镜像文件----容器---独立ip访问信息-----端口号码映射

Docker下载镜像原理

Docker  pull 从远程docker 官方仓库下载 镜像,到本地,在使用容器运行该镜像。

注意的是:docker官方镜像仓库地址部署在国外,下载镜像可能比较慢,建议配置国内加速镜像

Docker加载镜像配置

https://hub.docker.com/search?q=redis&type=image ---在国外访问可能比较慢

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

科大镜像:https://docker.mirrors.ustc.edu.cn/

网易:https://hub-mirror.c.163.com/

阿里云:https://<你的ID>.mirror.aliyuncs.com

七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

阿里云加速镜像配置

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://66mzqrih.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

如何查看加速镜像安装成功

输入:docker info

Docker常用命令

docker --help  帮助命令

docker --version

docker -version

docker images

查看本地images 镜像缓存

docker images 查看本地镜像文件

docker rmi -f kibana:5.6.9 ---删除镜像文件

REPOSITORY 存储库名称

Tag  镜像的标签  不写版本号码 默认下载最新latest镜像

IMAGE ID  镜像id

CREATED 创建时间

SIZE 大小

docker images -a

docker images -q ---只显示镜像的id

docker images --digests ---显示镜像的摘要信息

docker images --no-trunc ---显示完整镜像信息

docker rmi tomcat(镜像文件名称)

docker search

docker search mysql

https://hub.docker.com/

docker search -s 30 mysql  列出点赞数超过30以上。

latest 表示为最新的镜像文件 mysql8.0版本

docker pull
 

latest -----tag 最新版本的镜像文件

docker pull nginx:latest --默认的情况下 下载最新版本的镜像  可以通过

容器管理

查看容器信息

Docker  ps  获取到容器id

docker inspect  1e07cc5cc78d

运行容器
docker run

docker run -i(保持容器一直运行)-t(给容器一个伪终端)-d(后台运行,不直接进入容器) --name=tomcat9.2(给启动容器起名字)-p 8080:8080(宿主:docker容器)tomcat:9.2(启动的容器)  【参数】(加入容器初始化命令)

#通过 -it 启动的容器有两个特点 一创建就进入容器 exit退出容器 容器就会停止运行  ---交互式容器

#通过 -id 创建的容器 docker exec -it tomcat9.2(--name起的名称)进入容器 exit退出容器 容器不会停止运行   ---守护式容器

docker ps 查看正在运行的容器

docker ps -a 查看运行和已经运行关闭大的容器

docker stop tomcat8  关闭容器

docker start tomcat8 启动容器

docker rm tomcat8 删除容器

docker inspect tomcat8 查看容器信息

docker exec 参数  进入容器

docker run 运行原理

docker run tcf

简单描述:首先会先从本地获取获取tcf镜像文件,如果本地没有该镜像文件则会去

阿里云仓库查找该镜像文件,如果阿里云仓库也没有该镜像文件,则会报错找不到

镜像文件。

获取到镜像文件之后直接运行。

详细描述:

1.docker在本机缓存中  tcf镜像文件,如果本地存在该镜像文件

,则以该镜像文件作为模板在容器中运行。

2.如果本地缓存中,没有tcf镜像文件 则会从dockerhub 或者加速镜像中

查找,如果查找不到的话,则返回错误找不到该镜像。

  1. 如果能够查找到该镜像,则以该镜像作为模板运行。

每个容器都有自己独立的网络 ip信息 运行成功 就是一个轻量级linux操作系统

启动容器

docker start 容器id

停止容器

docker stop  容器id

删除容器

docker rm  容器id

进入容器中

# 首先使用下面的命令,查看容器ID(CONTAINER ID):

docker ps -a

# 然后用下面的命令进入容器,就可以使用bash命令浏览容器里的文件:

docker exec -it [CONTAINER ID] bash

# 有的镜像没有bash命令,可以用对应的shell,比如sh

docker exec -it [CONTAINER ID] sh

本文部分素材转载自蚂蚁课堂

相关文章:

高可用篇_A Docker容器化技术_II Docker环境搭建和常见命令

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载 Docker安装 Docker 要求 CentOS7 系统的内核版本在 3.10以上 &#xff0c;查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。 …...

Vue.js+SpringBoot开发食品生产管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3 食品管理模块2.4 生产销售订单管理模块2.5 系统管理模块2.6 其他管理模块 三、系统展示四、核心代码4.1 查询食品4.2 查询加工厂4.3 新增生产订单4.4 新增销售订单4.5 查询客户 五、…...

Python面试笔记

Python面试笔记 PythonQ. Python中可变数据类型与不可变数据类型&#xff0c;浅拷贝与深拷贝详解Q. 解释什么是lambda函数&#xff1f;它有什么好处&#xff1f;Q. 什么是装饰器&#xff1f;Q. 什么是Python的垃圾回收机制&#xff1f;Q. Python内置函数dir的用法&#xff1f;Q…...

springboot 查看和修改内置 tomcat 版本

解析Spring Boot父级依赖 去到项目的根pom文件中&#xff0c;找到parent依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>${springboot.version}…...

003——移植鸿蒙

目录 一、顶层Make分析 二、添加一个新的单板 2.1 Kconfig 2.2 Makefile 2.2.1 顶层Makefile 2.2.2 platform下的Makefile 2.2.3 platform下的bsp.mk文件 2.3 编译与调试 2.4 解决链接错误 三、内核启动流程的学习 3.1 韦东山老师总结的启动四步 3.2 启动文件分析…...

罗马数字转整数-力扣通过自己编译器编译

学会将力扣题目用自己自带的编译软件编译---纯自己想的本题解法 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两…...

深入解析JVM加载机制

一、背景 Java代码被编译器变成生成Class字节码&#xff0c;但字节码仅是一个特殊的二进制文件&#xff0c;无法直接使用。因此&#xff0c;都需要放到JVM系统中执行&#xff0c;将Class字节码文件放入到JVM的过程&#xff0c;简称类加载。 二、整体流程 三、阶段逻辑分析 3…...

python redis中blpop和lpop的区别

python redis中lpop()方法是获取并删除左边第一个对象。 def lpop(self,name: str,count: Optional[int] None,) -> Union[Awaitable[Union[str, List, None]], Union[str, List, None]]:"""Removes and returns the first elements of the list name.By de…...

第四百一十回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容&#xff0c;本章回中将介绍如何获取时间戳.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…...

程序员的README——编写可维护的代码(一)

用户行为不可预测&#xff0c;网络不可靠&#xff0c;事情总会出错。生产环境下的软件必须一直保持可用状态。 编写可维护的代码有助于你应对不可预见的情况&#xff0c;可维护的代码有内置的保护、诊断和控制。 切记通过安全和有弹性的编码实践进行防御式编程来保护你的系统&a…...

数据库管理-第160期 Oracle Vector DB AI-11(20240312)

数据库管理160期 2024-03-12 数据库管理-第160期 Oracle Vector DB & AI-11&#xff08;20240312&#xff09;1 向量的函数操作to_vector()将vector转换为标准值vector_norm()vector_dimension_count()vector_dimension_format() 2 将向量转换为字符串或CLOBvector_seriali…...

(C++进阶)boost库笔记

目录 1、boost::function 1.1 概述 1.2 boost包装器和C11包装器对比 1.2、代码示例 1、boost::function 1.1 概述 boost::function 是 Boost 库中提供的一个通用函数对象包装器&#xff0c;它可以存储指向任何可调用对象的指针&#xff0c;并且可以在任何时候通过 operat…...

MapReduce面试重点

文章目录 1. 简述MapReduce整个流程2. join原理 1. 简述MapReduce整个流程 数据划分(Input Splitting)&#xff1a;开始时&#xff0c;输入数据被分割成逻辑上的小块&#xff0c;每个块被称为Input Split。 映射(Map)&#xff1a;每个Input Split 由一个或多个Map任务处理&…...

C语言简单题(7)从主函数中输入10个等长字符串,用一个函数对他们排序,然后在主函数输出这10个已排好序的字符串

从主函数中输入10个等长字符串&#xff0c;用一个函数对他们排序&#xff0c;然后在主函数输出这10个已排好序的字符串 /* 从主函数中输入10个等长字符串&#xff0c;用一个函数对他们排序&#xff0c;然后在主函数输出这10个已排好序的字符串 */ #include<stdio.h> …...

光伏科普|太阳能光伏发电应用场景有哪些?

太阳能光伏发电的应用领域其实非常广泛&#xff0c;很多人会不相信&#xff0c;但在我们的日常生活中随处可见太阳能光伏产业&#xff0c;本文将详细介绍其应用场景有哪些。 一、工业领域厂房 太阳能光伏发电作为一种清洁、可再生的能源&#xff0c;安装在工业领域厂房&#…...

Go 构建高效的二叉搜索树联系簿

引言 树是一种重要的数据结构&#xff0c;而二叉搜索树&#xff08;BST&#xff09;则是树的一种常见形式。在本文中&#xff0c;我们将学习如何构建一个高效的二叉搜索树联系簿&#xff0c;以便快速插入、搜索和删除联系人信息。 介绍二叉搜索树 二叉搜索树是一种有序的二叉…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通信号灯识别系统(深度学习+UI界面+训练数据集+Python代码)

摘要&#xff1a;本研究详细介绍了一种采用深度学习技术的交通信号灯识别系统&#xff0c;该系统集成了最新的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5等早期算法进行了性能评估对比。该系统能够在各种媒介——包括图像、视频文件、实时视频流及批量文件中——准确地…...

以太坊开发学习-solidity(三)函数类型

目录 函数类型 函数类型 solidity官方文档里把函数归到数值类型 函数类型是一种表示函数的类型。可以将一个函数赋值给另一个函数类型的变量&#xff0c; 也可以将一个函数作为参数进行传递&#xff0c;还能在函数调用中返回函数类型变量。 函数类型有两类&#xff1a;- 内部&…...

教你把公司吃干抹净、榨干带走

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答 正文 打工人一定要做到够自私&#xff0c;把公司的一切为我所用&#xff0c;你要知道闷头打工是没有出路的。聪明的人会以最快的速度榨干带走公司的一切资源、人脉、技能&#xff0c;为…...

开发指南007-导出Excel

平台上开发导出Excel比过去的单体架构要复杂些&#xff0c;因为前端和后台不在一个进程空间里。 后台的操作是先生成excel文件&#xff0c;技术路线是jxl <dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId&g…...

5步掌握Poppler-Windows部署:解决Windows环境PDF处理难题

5步掌握Poppler-Windows部署&#xff1a;解决Windows环境PDF处理难题 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 对于需要在Windows平台进行PD…...

解决Windows游戏控制器兼容性问题:ViGEmBus内核驱动完整实现指南

解决Windows游戏控制器兼容性问题&#xff1a;ViGEmBus内核驱动完整实现指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在Windows游戏开发和控制器应用…...

3大显示难题如何解决?用ColorControl实现专业级色彩管理

3大显示难题如何解决&#xff1f;用ColorControl实现专业级色彩管理 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl ColorControl是一款强大的开源工具&#x…...

CANN-昇腾NPU-LoRA微调-显存只占5%怎么做到的

全量微调 Llama2-7B 需要更新 7B 参数&#xff0c;显存开销约 80GB。LoRA 只训练 0.5% 的参数&#xff08;约 35M&#xff09;&#xff0c;显存开销约 4GB。在昇腾NPU上 LoRA 微调是性价比最高的方案。 LoRA 原理 在原始权重 W 旁边加一个低秩矩阵 ΔW A B&#xff1a; 原…...

深入Linux内核:PTP硬件时间戳(HW Timestamping)是如何炼成的?

深入Linux内核&#xff1a;PTP硬件时间戳&#xff08;HW Timestamping&#xff09;的实现机制与技术解析 1. 高精度时间同步的技术演进与PTP核心价值 在现代分布式系统中&#xff0c;时间同步精度已经从毫秒级演进到纳秒级需求。金融交易系统要求时间偏差小于100纳秒&#xff…...

Windows远程桌面免费解锁指南:家庭版也能享受多用户并发连接

Windows远程桌面免费解锁指南&#xff1a;家庭版也能享受多用户并发连接 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 你是否曾经因为Windows家庭版无法使用远程桌面而烦恼&#xff1f;或者需要多人同时访问同一…...

RePKG终极指南:如何高效提取Wallpaper Engine壁纸资源与转换TEX纹理

RePKG终极指南&#xff1a;如何高效提取Wallpaper Engine壁纸资源与转换TEX纹理 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专业的Wallpaper Engine资源处理工具&am…...

【限时技术解密】Midjourney未公开的饱和度隐式约束机制:基于2372条训练图像元数据逆向推演的4项硬性规则

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney饱和度调整的底层认知重构 传统图像处理中&#xff0c;饱和度常被简化为“色彩强度调节滑块”&#xff0c;但在 Midjourney 的扩散生成范式下&#xff0c;饱和度并非独立通道参数&#xff0…...

告别Cygwin!用Windows版MRT一键批量拼接MODIS影像(附详细配置流程)

告别Cygwin&#xff01;Windows版MRT全流程实战&#xff1a;MODIS影像批量拼接指南 遥感数据处理的门槛正在被技术进步不断拉低。曾几何时&#xff0c;在Windows系统下处理MODIS数据意味着必须忍受Cygwin这类Linux模拟环境的笨重与兼容性问题——环境配置复杂、命令操作反直觉、…...

跨环境漏洞复现:Docker Desktop与VMware Kali的TCP/信号对齐实战

1. 这不是“复现个POC就完事”的演练&#xff0c;而是真实攻防链路上的环境卡点攻坚你有没有遇到过这种情况&#xff1a;在本地Kali虚拟机里跑通的CVE-2026-24061利用脚本&#xff0c;一放到客户现场的Docker Desktop环境里就报错——不是缺Python模块&#xff0c;就是socket连…...