Docker--在linux安装软件
Docker
引用Docker原因是在linux中安装软件
以前在linux中安装软件,是直接安装在linux操作系统上,软件和操作系统耦合度很高,不方便管理,因为linux版本不同,环境也就改变了
docker是一种容器技术,提供标准的应用镜像(包含应用+应用的依赖),这样我们就可以非常轻松的在docker中安装应用。每一个应用安装好后,就是一个独立的容器。
总结:docker解决了软件环境迁移问题
主要功能:
1.打包:可以把软件以及软件的依赖打包制作成一个镜像(例如后面吧springboot和jdk)
2.分发:你可以把你打包好的“安装包”上传到镜像仓库,其他人也可以很方便的获取和安装
3.部署:拿着"安装包"就可以一个命令运行起来你的应用,自动模拟出一模一样的运行环境,不管是在Windows/Mac/Linux
主要概念:
仓库(Repository):是docker提供的一个用来保存镜像的仓库
镜像(Image):镜像就是一个可执行的包,用来创建容器,docker中每一个软件就是一个镜像(包含应用+应用的依赖)
容器(Container):容器就是镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停等。
Docker安装:
1.安装yum配置工具:
yum install -y yum-utils
2.配置docker的yum源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装:
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
4.启动常用命令
docker安装成功后并没有启动,
启动命令
systemctl start docker
关闭命令
systemctl stop docker
设置开机自动启动
systemctl enable docker
5.测试docker版本:
docker -v
Docker卸载:
1.停止服务
systemctl stop docker
2.卸载
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
3.删除文件
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
Docker配置:
配置镜像加速
1.在etc下创建docker目录
mkdir -p /etc/docker
2.进入docker目录
cd /etc/docker
3.创建daemon.json文件
touch daemon.json
4.修改文件
vim daemon.json
{
"registry-mirrors": ["https://dockerhub.icu"]
}
5.重载配置
systemctl daemon-reload
6.重启
systemctl restart docker
Docker服务命令:
1.Docker镜像命令
查看镜像列表:
docker images
从docker仓库拉去镜像到本地仓库:
docker pull mysql:8.0
删除本地镜像:
docker rmi mysql:8.0
从dockerfile构建镜像:
docker build
保存镜像到本地,生成tar文件(tar是linux中的压缩文件格式)
docker save > mysql.tar
载入本地镜像:
docker load < mysql.tardocker load -i <镜像文件>.tar
'-i’选项表示输入文件,这样 Docker 知道从哪里读取镜像数据。如果不加'-ì',默认是从标准输入读取数据,因此需要加上'-ì
和文件名来指定镜像文件。
推送镜像到服务器(目前用不到):
docker push
Docker容器命令
1.创建一个新的容器并运行:
docker run 镜像名
2.查看
docker ps -a
3.启动容器
docker start mysql
4.停止mysql
docker stop mysql
5.删除容器(卸载软件)
docker rm mysql
6.查看容器日志
docker logs mysql
安装Mysql
1.下载mysql镜像
在线下载:
docker pull mysql:8.0
加载本地镜像
docker load < mysql.tardocker load -i <镜像文件>.tar
2.安装
docker run -d -p 3306:3306 \
//-p:指定端口映射 3306:3306端口号映射 -d:让容器后台运行
--name mysql \ //指定容器名称
--restart=always \ //自动启动
--privileged=true \ //拥有特权
-e TZ=Asia/Shanghai \ //时区
-e MYSQL_ROOT_PASSWORD=root\ //密码
mysql:8.0 //镜像
3.进入到容器
docker exec -it 容器名/容器id bash
4.登录mysql
mysql -uroot -proot
5.修改root账号加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'
6.退出
exit
7.进入mysql把sql备份,然后新建一个连接,连接到虚拟机,在新的连接中打开备份的数据库
镜像和容器
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对 外不可见。
数据卷挂载
数据卷是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。 它将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便迁移容器产生的数据。 在执行docker run命令时,使用-v数据卷:容器内目录可以完成数据卷挂载。
创建mysql数据卷
mkdir -p /opt/mysql/data
安装
docker run -d -p 3306:3306 \
--name mysql \
--restart=always \
--privileged=true \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /opt/mysql/data:/var/lib/mysql \ //数据卷映射
mysql:8.0
安装后续可看上述mysql安装步骤
Docker安装nginx
Nginx是一款是由俄罗斯的程序设计师所开发高性能的 Web服务器(只能运行前端项目,不能运行 java项目)。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好, 中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等等。
Nginx专为性能优化而开发,性能是服务器最重要的考量,实现上非常注重效率,能经受高负载的 考验,据报告能支持高达50,000个并发连接数。
拉取镜像:
docker pull nginx:1.24
创建数据卷:
mkdir -p /opt/nginx/html
安装命令:
docker run -d -p 80:80 \
--name nginx \
--restart=always \
--privileged=true \
-v /opt/nginx/html:/usr/share/nginx/html \
nginx:1.24
访问:
自己的ip:80
其中 -v /opt/nginx/html 就是与容器中对应的一个在宿主机中的数据卷 我们只需要将文件部署到宿主机的/opt/nginx/html目录下即可
相关文章:
Docker--在linux安装软件
Docker 引用Docker原因是在linux中安装软件 以前在linux中安装软件,是直接安装在linux操作系统上,软件和操作系统耦合度很高,不方便管理,因为linux版本不同,环境也就改变了 docker是一种容器技术,提供标…...

知识库与RAG
认识知识库的技术原理 第一步:📖➡️📈将文档的文本转换为向量,向量存储到向量数据库。第二步:🗨️➡️🔍将用户的提问内容转换成向量,在向量数据库中检索相似的文本内容࿰…...
【2024最新】C++扫描线算法介绍+实战例题
扫描线介绍:OI-Wiki 【简单】一维扫描线(差分优化) 网上一维扫描线很少有人讲,可能认为它太简单了吧,也可能认为这应该算在差分里(事实上讲差分的文章里也几乎没有扫描线的影子)。但我认为&am…...

语言主要是一种交流工具,而不是思维工具?GPT5何去何从?
引言 在人工智能领域,特别是大语言模型(LLM)的发展中,语言和思维的关系一直是一个备受关注的话题。近期,麻省理工学院(MIT)在《Nature》杂志上发表了一篇题为《Language is primarily a tool f…...

传感器标定(三)激光雷达外参标定(lidar2ins)
一、数据采集 1、LiDAR 传感器的 LiDAR PCD 数据 2、来自 IMU 传感器的姿势文件 3、手动测量传感器之间外部参数初始值并写入的 JSON 文件 二、下载标定工具 //总的git地址: https://github.com/PJLab-ADG/SensorsCalibration git地址: https://githu…...

【漏洞复现】Crocus系统—Download 文件读取
声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。 一、漏洞描述 Crocus系统中的Download文件读取漏洞允许未经身份验证的攻击者通过特定请求读取系统上的任意文件。Crocu…...
游戏开发面试题1
说说对单例模式的了解 单例模式(Singleton Pattern)是一种设计模式,其目的是确保一个类只有一个实例,并提供一个全局访问点来访问该实例。这在某些情况下非常有用,比如需要一个唯一的配置管理器、日志记录器、或资源管…...

线程池笔记
笔记梳理 前言.PHONYC标准库头文件C/C通用或C特有头文件mkdirc_str()snprintfvsnprintfumaskopen函数可变参数列表va_startva_endfunctionalstatic_castpthread_cond_init_threads.emplace_backstd::bindstd::placeholdersThreadPool(const ThreadPool<T> &tp) dele…...
Go语言基础数据类型、变量及自增语法
本文内容为Go语言的基础数据类型、变量定义和赋值及自增语法介绍。 目录 基础数据类型 变量 先定义后赋值 定义时直接赋值 自动推导定义赋值 平行赋值 自增语法 总结 基础数据类型 int,int8 intl6, int32, int64 uint8... uint64 float32,float64 true/false 变量 …...
ES6-ES13符号:单双引号、变量的解构赋值、占位符 、字符串模版`${} `、扩展运算符...、?,??,_,||=,=,in
原型、this、闭包,for四类循环,ES6-14(2023)_es6-es14-CSDN博客 目录 查看ES版本 单双引号:无区别 变量的解构赋值:声明变量被数组/对象中的元素赋值 推荐用const,因为是从其他地方获取值 …...

【远景能源25届校招PI测评】题型深度解析与应试策略
摘要: 远景能源作为新能源行业的领军企业,其校园招聘备受瞩目。本文将深入分析25届远景能源校招的PI测评题型,为求职者提供全面的备考指南。 正文: 尊敬的求职者们,您是否正准备迎接远景能源的校招挑战?P…...

关于Qt Creator 使用Qt Quick的Design模式设置
关于使用Qt Quick的Design模式设置: 如描述所言: 如果使用Design模式打开qml文件失败显示如下: 首先确认自己是否安装了Qt Design Studio 如果安装了仍然不显示,则需要勾选下面三个地方才能用Design模式打开.ui.qml文件&#…...
Spring常见问题一:IOC和DI
IOC和DI IOC和DI之间到底是什么关系? 什么是依赖关系?依赖关系会带来什么问题?Spring是怎么来支持依赖注入的? 引言 在现代软件开发中,面向对象编程(OOP)已经成为主流编程范式。然而࿰…...

LabVIEW红外热波图像缺陷检
开发使用LabVIEW开发的红外热波图像缺陷检测系统。该系统结合红外热像仪、工业相机和高效的数据采集硬件,实现对工件表面缺陷的自动检测和分析。通过LabVIEW的强大功能,系统能够实时采集、处理和显示红外热波图像,有效提高了检测的精度和效率…...

c#与欧姆龙PLC通信——如何更改PLC的IP地址
前言 我们有时候需要改变欧姆龙Plc的ip地址,下图有两种更改方式,一种是已知之前Plc设置的Ip地址,还有一种是之前不知道Pl的Ip地址是多少,下面分别做介绍。 1、已知PLC的IP地址的情况下更改地址 假设已知PLC的Ip地址,比如本文中PLC的IP为192.168.1.2,我首先将电脑的IP地…...
[Spring Boot]定时任务因系统时间修改之后无法执行
问题描述 当Spring Boot启动时,当前时间为2024-01-01 00:00:00。 此时你创建了任务: 每10秒钟触发一次定时任务 Scheduled(cron "0/10 * * * * ? ") public void scheduledTask() { }此时你手动修改了系统时间,修改为2023-12-0…...

【棋盘上的战舰】python刷题记录
目录 小前言 思路: 上代码 lucky ending 小前言 经过漫长的停更周期-----1个月 我决定铁血回归!!! 思路: 两层for循环暴力最快了这种小小范围题,主要是第一行和第一列的边界处理,我分为…...
NoSQL 之Redis集群
Redis集群 主从复制 主从复制(Replication)是 Redis 中一种基本的高可用架构模式,适用于简单的读写分离需求和基本的故障恢复。在主从复制中,一个 Redis 主节点可以拥有多个从节点,主要特点包括: 角色定义&…...

ES13的4个改革性新特性
1、类字段声明 在 ES13 之前,类字段只能在构造函数中声明, ES13 消除了这个限制 // 之前 class Car {constructor() {this.color = blue;this.age = 2...
Flutter EasyRefresh:介绍与使用指南
什么是 Flutter EasyRefresh? Flutter EasyRefresh 是一个强大的下拉刷新和上拉加载组件,用于构建流畅且高效的 Flutter 应用程序。它提供了多种自定义配置和动画效果,使开发者可以轻松实现列表的刷新和加载功能。 主要功能 支持下拉刷新和…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...