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

springcloud篇3-docker需熟练掌握的知识点

docker的原理请参考博文《Docker与Kubernetes》。

一、安装docker的指令

1.1 安装yum工具

yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken

在这里插入图片描述

补充:配置镜像源

注意:
yum安装是在线联网下载安装,而很多的资源在国外,会去国外的网站安装,速度会很慢,此时需要配置镜像源。
命令如下:

yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i 's/download.docker.com/mirrors.aliyun\/docker-ce/g'yum makecache fast

1.2 安装docker

yum install -y docker-ce

说明:
-y 表示“遇到问题都选y”
在这里插入图片描述

1.3 启动docker

注意:
启动docker前,一定要关闭防火墙

# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

启动docker服务:

# 启动docker服务
systemctl start docker
# 查看状态
systemctl status docker

在这里插入图片描述
关于docker的一些其他指令:

systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
docker -v #查看docker版本

1.4 配置docker镜像

以使用华为云的docker镜像加速器为例。
登录华为云账号(公司买的IAM用户,使用的是公司购买的华为云服务器)找到docker镜像服务。
在这里插入图片描述
先创建一个镜像配置文件:
在这里插入图片描述
在这里插入图片描述

# 使docker重新读取镜像库配置文件systemctl daemon-reload
# 重启docker服务
systemctl restart docker

说明:
每次修改daemon.json文件都要执行上面两个命令。

二、docker的基本操作

2.1 镜像的命令规范

镜像名称一般分为两部分:[repository]:[tag]
tag指镜像版本,若是没有该项则默认为最新版本的(lastest)。
在这里插入图片描述

2.2 docker的镜像操作

在这里插入图片描述
docker build构建镜像
docker pull 从镜像服务器拉取镜像
docker push 推送镜像到镜像服务器
docker img 查看镜像
docker rmi 删除镜像
docker save 保存镜像为一个压缩包
docker load 加载压缩包为镜像

例如:
在这里插入图片描述

三、容器相关命令

**docker run 创建容器(运行状态)
docker rm 删除容器(删除容器及硬盘上的文件)
docker pause 暂停容器(保留容器的内存及硬盘上的文件)
docker unpause 唤醒容器
docker stop 停止容器(删除容器的内存,保留硬盘上的文件)
docker start 启动容器
docker exec 进入容器执行命令
docker ps 查看所有运行的容器及状态
docker logs 查看容器运行日志
**
在这里插入图片描述

3.1 容器基本命令(创建、删除)

在这里插入图片描述
说明:
在这里插入图片描述
容器是与外界隔离的,任何人都无法访问。为了能使外部请求能够访问到容器, 需要暴露容器的端口(与宿主机端口关联)。
例如上图,nginx容器的端口为80,把容器端口与宿主机端口关联。当访问http://宿主机ip:80时,会把请求转发到nginx容器。
例如:
在这里插入图片描述
在这里插入图片描述
访问容器:
在这里插入图片描述
在这里插入图片描述
跟踪日志输出:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 进入容器执行命令

在这里插入图片描述
创建一个容器后进行容器控制台:
在这里插入图片描述
在这里插入图片描述

3.2.1 案例1-修改nginx容器首页内容

从上图中可以看出,容器有自己的文件系统。
下面进行一个小案例来体验一下(修改nginx欢迎页内容):
找到index.html文件,
在这里插入图片描述
修改文件:

sed -i 's#Welcome to nginx#hello docker#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8">#g' index.html

在这里插入图片描述
注意:都不要重启docker服务。
查看效果:
在这里插入图片描述
在这里插入图片描述

3.2.2 案例2-使用redis容器

docker run --name redis-docker -p 6379:6379 -d redis redis-server --appendonly yes

说明:
“–appendonly yes”执行可持支aof持久化。
在这里插入图片描述
创建docker后可以用redis desktop Mamager连接:
在这里插入图片描述
在这里插入图片描述
进入容器的控制台进行操作:
在这里插入图片描述
也可以直接进入redis的客户端:
在这里插入图片描述
查看效果:
在这里插入图片描述

四、数据卷命令

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。且不同的容器可以共享同一个数据卷(适用于集群)。
在这里插入图片描述
在这里插入图片描述
实例-创建一个数据卷并查看它在宿主机上的位置:
在这里插入图片描述

4.1 案例1-使用数据卷修改nginx首页内容

docker run --name nm -p 80:80 -v html:/usr/share/nginx//html -d nginx

说明:
-v 是使用数据卷(注意:如果-v 指定的数据卷html不存在会自动新建)

在这里插入图片描述
编辑index.html文件:
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述

4.2 案例2-创建一个MySQL容器,将宿主机目录直接挂载到容器

在这里插入图片描述

五、Dockerfile自定义镜像

5.1 镜像结构

以MySQL镜像为例。

在这里插入图片描述

5.2 Dockerfile

Dockerfile是一个文件,其中包含一个个的指令,用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
第一行必须是FROM,从一个基础镜像来构建。
在这里插入图片描述
说明:
(1)EXPOSE指令后的端口后用于docker run的-p参数后的端口值。

5.3 案例-基于Ubuntu构建一个运行java项目的新镜像

创建前的资源如下:
在这里插入图片描述
Dockerfile的内容如下:

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local# 拷到jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar# 安装JDK
RUN cd $JAVA_DIR \&& tar -xf ./jdk8.tar.gz \&& mv ./jdk1.8.0_144 ./java8# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app/jar

执行创建镜像指令:

docker build -t javaweb:1.0 .

说明:
上述指令最后的"."表示Dockerfile所在目录。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果如下:
在这里插入图片描述

补充:简化Dockerfile

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local# 拷到jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/# 安装JDK
RUN cd $JAVA_DIR \&& tar -xf ./jdk8.tar.gz \&& mv ./jdk1.8.0_144 ./java8# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 前面的命令在安装基础镜像和JDK,每次都写很重复COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app/jar

如上,安装前几层(基础镜像和jdk)的步骤可以单独打包。
事实上,有一个名为java:8-alpine的镜像,基于它,可以将一个Java项目构建为镜像。
Dockerfile简化如下:

# 指定基础镜像
FROM java:8-alpineCOPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app/jar

六、DockerCompose

Docker Compose可以基于Compose文件帮我们快速地部署分布式应用,而无需手动一个个创建和运行容器。
Compose文件是个文本文件,通过指令(其实是把docker run和docker-build指令转换了一下)定义集群中的每个容器如何运行。
Compose文件示例如下:
在这里插入图片描述

6.1 DockerCompose安装

(后续补充)

6.2 部署微服务集群

(后续补充)

七、Docker镜像仓库(搭建企业私有镜像)

(后续补充)

相关文章:

springcloud篇3-docker需熟练掌握的知识点

docker的原理请参考博文《Docker与Kubernetes》。 一、安装docker的指令 1.1 安装yum工具 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken补充&#xff1a;配置镜像源 注意&#xff1a; yum安装是在线联网下载安装&#xff0c;而很多的资源…...

基于单片机的直流稳压电源的设计(论文+源码)

1.系统方案设计 在本次直流稳压电源的设计中&#xff0c;其关键指标如下&#xff1a; 系统输入电压220V交流系统输出直流0到12V可调&#xff0c;步进可以达到0.1V电流最大输出可以到2A具有短路保护功能可以通过液晶或者数码管等显示设备显示当前输出电压 2. 电路图...

uniapp-vue3 实现, 一款带有丝滑动画效果的单选框组件,支持微信小程序、H5等多端

采用 uniapp-vue3 实现, 是一款带有丝滑动画效果的单选框组件&#xff0c;提供点状、条状的动画过渡效果&#xff0c;支持多项自定义配置&#xff0c;适配 web、H5、微信小程序&#xff08;其他平台小程序未测试过&#xff0c;可自行尝试&#xff09; 可到插件市场下载尝试&…...

解锁 C 语言字符函数密码,开启高效编程之路

文章目录 一、字符函数的构成二、字符函数的分类1、字符分类函数1、isalnum函数2、isalpha函数3、isdigit函数4、islower函数5、isupper函数6、ispunct函数7、isspace函数8、iscntrl函数9、isxdigit函数10、isgraph函数11、isprint函数 2、字符转换函数 三、字符函数的应用 一、…...

LLM之RAG实战(五十一)| 使用python和Cypher解析PDF数据,并加载到Neo4j数据库

一、必备条件&#xff1a; python语言Neo4j数据库python库&#xff1a;neo4j、llmsherpa、glob、dotenv 二、代码&#xff1a; from llmsherpa.readers import LayoutPDFReaderfrom neo4j import GraphDatabaseimport uuidimport hashlibimport osimport globfrom datetime …...

力扣-数组-01两数之和

解析 遍历i和第i1&#xff0c;两个for循环查就可以&#xff0c;时间复杂度是 代码 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> ansewer;bool flag false;for(int i 0;i < nums.size(); i){for(in…...

Flutter中的网络请求图片存储为缓存,与定制删除本地缓存

Flutter中的网络请求图片存储为缓存&#xff0c;与定制删除本地缓存 1&#xff1a;封装请求图片函数 2&#xff1a;访问的图片都会转为本地缓存&#xff0c;当相同的请求url&#xff0c;会在本地调用图片 3&#xff1a;本地缓存管理【windows与andriod已经测试】【有页面】【有…...

保障移动应用安全:多层次安全策略应对新兴威胁

在数字化时代&#xff0c;移动应用的安全问题变得越来越重要。随着网络威胁的不断升级&#xff0c;确保移动应用的安全性不仅是保护敏感数据的关键&#xff0c;也是维护用户信任的基础。为了应对复杂的安全挑战&#xff0c;企业必须采取先进的技术和多层次的安全策略&#xff0…...

【Linux】函数

一、函数 1、创建函数 如果定义了同名函数&#xff0c;则新定义的函数就会覆盖原先的定义的函数&#xff0c;而且在运行时不会报错。 创建函数的语法&#xff1a; 方法1&#xff1a;使用关键字function function name { commands } shell脚本中的函数名不能重复 方法2&#x…...

Maven中管理SNAPSHOT版本含义及作用

在开发过程中突然产生了一个疑问&#xff1a;IDEA中 maven deploy的依赖包的版本号,比如 1.0.0-SNAPSHOT是在哪配置的&#xff1f;在远程仓库中的版本和这个有关系吗 &#xff1f; 在 Maven 中&#xff0c;-SNAPSHOT 后缀是用于标识项目版本为快照&#xff08;Snapshot&#xf…...

win10 VS2019上libtorch库配置过程

win10 VS2019上libtorch库配置过程 0 引言1 获取libtorch2 在VS上配置使用libtorch库3 结语 0 引言 &#x1f4bb;&#x1f4bb;AI一下&#x1f4bb;&#x1f4bb;   libtorch库是一个用于深度学习的C库&#xff0c;是PyTorch的官方C前端。它提供了用于构建和训练深度学习模…...

【计算机网络】课程 实验二 交换机基本配置和VLAN 间路由实现

实验二 交换机基本配置和VLAN 间路由实现 一、实验目的 1&#xff0e;了解交换机的管理方式。 2&#xff0e;掌握通过Console接口对交换机进行配置的方法。 3&#xff0e;掌握交换机命令行各种模式的区别&#xff0c;能够使用各种帮助信息以及命令进行基本的配置。 4&…...

Oracle Dataguard(主库为单节点)配置详解(4):将主库复制到备库并启动同步

Oracle Dataguard&#xff08;主库为单节点&#xff09;配置详解&#xff08;4&#xff09;&#xff1a;将主库复制到备库并启动同步 目录 Oracle Dataguard&#xff08;主库为单节点&#xff09;配置详解&#xff08;4&#xff09;&#xff1a;将主库复制到备库并启动同步一、…...

OpenCL(贰):浅析CL内核程序接口函数

目录 1.前言 2.获取平台信息 1.cl_int类型 2.cl_platform_id类型 3.clGetPlatformIDs()&#xff1a;查询系统OpenCL平台数量或获取具体的平台信息 4.clGetPlatformInfo()&#xff1a;查询指定OpenCL平台的信息&#xff0c;例如平台名称、供应商、版本等 3.设置OpenCL上下文…...

Leetcode 3407. Substring Matching Pattern

Leetcode 3407. Substring Matching Pattern 1. 解题思路2. 代码实现 题目链接&#xff1a;3407. Substring Matching Pattern 1. 解题思路 这一题是一道leetcode easy的题目&#xff0c;照说应该没啥的&#xff0c;不过实际我做的时候在这里卡了一下&#xff0c;所以还是拿…...

学英语学压测:02jmeter组件-测试计划和线程组ramp-up参数的作用

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#xff1a;先看关键单词&#xff0c;再看英文&#xff0c;最后看中文总结&#xff0c;再回头看一遍英文原文&#xff0c;效果更佳&#xff01;&#xff01; 关键词 Functional Testing功能测试[ˈfʌŋkʃənəl ˈtɛstɪŋ]Sample样…...

Vue笔记-001-声明式渲染

https://cn.vuejs.org/tutorial/#step-2https://cn.vuejs.org/tutorial/#step-2 Vue 单文件组件 (Single-File Component&#xff0c;缩写为 SFC) 单文件组件是一种可复用的代码组织形式&#xff0c;它将从属于同一个组件的 HTML、CSS 和 JavaScript 封装在使用 .vue 后缀的文件…...

26考研资料分享 百度网盘

26考研资料分享考研资料合集 百度网盘&#xff08;仅供参考学习&#xff09; 基础班&#xff1a; 通过网盘分享的文件&#xff1a;2026【考研英语】等3个文件 链接: https://pan.baidu.com/s/1Q6rvKop3sWiL9zBHs87kAQ?pwd5qnn 提取码: 5qnn --来自百度网盘超级会员v3的分享…...

.NET 8 + Ocelot + Consul 实现代理网关、服务发现

.NET 8 Ocelot Consul 实现代理网关、服务发现 本文环境&#xff1a;.NET 8 Ocelot 23.4.2 Consul 1.7.14.6 1 实现网关 分别创建3个WebApi工程&#xff1a;OcelotGw、TestGwAService、TestGwBService&#xff1b;在OcelotGw工程中安装Ocelot包&#xff1a;Install-Packag…...

使用 Nginx 轻松处理跨域请求(CORS)

使用 Nginx 轻松处理跨域请求&#xff08;CORS&#xff09; 在现代 Web 开发中&#xff0c;跨域资源共享&#xff08;CORS&#xff09;是一种重要的机制&#xff0c;用于解决浏览器的同源策略限制。CORS 允许服务器声明哪些来源可以访问其资源&#xff0c;从而确保安全性与可用…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...