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

docker之简介与安装

环境配置问题

       没有虚拟机,我们往往是打包代码发给对方,然后让对方安装相应的环境,比如node、数据库,要是配置不同,项目很有可能无法运行,还会报错,如果多个人想要运行这份代码,那还得多次安装配置环境。

        有虚拟机之后,我们可以直接发个链接给别人就可以查看,就得开始部署在服务器上。然后去买了服务器,学了linux,去服务器上搭建环境,安装各种项目启动需要的东西,中途可能还安装不成功,然后XShell上传打包好的代码,然后解压运行,测试是否运行正常。

虚拟机

环境安装的一种解决办法,可以在windows上运行linux系统,通过虚拟机可以还原软件原始环境

优点:

        相当于真实系统,但是对于底层又是一个普通文件,可以随时删除,方便删除

缺点:

        资源占用多:在物理服务器创建一台虚拟机时,便需要虚拟出一套硬件并在上面运行完整的操作系统

        冗余步骤多:必须有完整的操作过程,比如登录

        启动慢

Linux

Linux不是模拟的完整的操作系统,而是对进程进行隔离,在正常进程的外面套了一个保护层形成容器。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离

优势(相对于虚拟机)

        启动快

        用资源少

        体积小:只是一个进程,而不是完整的操作系统

容器

Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。

docker

简介

        docker是基于Linux容器的一种封装,提供了简单易用的容器使用接口

        docker将应用程序与该程序的依赖打包在一个文件里。运行这个文件就会生成一个虚拟容器,就不用担心环境问题,还可以进行版本管理、复制修改等

优点

        提供一次性的环境:本地测试他人软件,持续集成的时候提供单元测试和构建的环境

        配置简化:将环境和配置放入代码然后部署,同样的Docker配置能够在各种环境中使用

        快速部署:适用于持续集成和持续交付(CI/CD)

组成

Docker使用C/S架构(服务器-客户机,服务器负责数据的管理,客户机负责完成与用户的交互任务)

Docker管理的对象包含镜像、容器、网络、数据卷等

        镜像:Docker 把应用程序及其依赖[提供运行项目的时候所需的程序,库,资源,配置等],打包在 image 文件里面,通过image生成 Docker 容器

        容器:容器 = 镜像 + 读写层,容器可以被创建、启动、停止、删除、暂停等

        网络:Docker容器之间进行通信的网络结构,可以让不同的Docker容器之间相互通信,也可以让Docker容器与宿主机或外部网络进行通信

        数据卷:是一个可供容器使用的特殊目录(或者称为存储空间),它能够将宿主机操作系统中的目录直接映射给容器,通过这种方式将宿主机目录映射给容器使用

安装

由于在CentOS下安装docker最常用,所以以Linux环境安装为主

1.安装工具包

缺少依赖无法完成

$ sudo yum install -y yum-utils

2.设置远程仓库

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

3.安装

$ sudo yum install docker-ce

4.启动

$ sudo systemctl start docker
或者
$ sudo service docker start
service docker start        #启动docker
chkconfig docker on         #加入开机启动

5.查看版本

$ sudo docker version

6.相关命令

镜像相关

        docker imager: 列出本地的镜像

        docker pull <image_name>: 从远程仓库拉取镜像到本地。

        docker push <image_name>: 将本地镜像推送到远程仓库。

        docker build -t <image_name> <dockerfile_path>: 基于 Dockerfile 构建镜像。

        docker tag <image_id> <new_image_name>: 为镜像添加标签。

        docker rmi <image_id>: 删除指定的镜像

容器相关

        docker ps: 列出正在运行的容器。
        docker ps -a: 列出所有容器,包括停止的容器。
        docker run <image_name>: 创建并启动一个容器。
        docker start <container_id>: 启动一个已停止的容器。
        docker stop <container_id>: 停止一个正在运行的容器。
        docker restart <container_id>: 重启一个容器。
        docker rm <container_id>: 删除一个容器。
        docker exec -it <container_id> <command>: 在正在运行的容器中执行命令。
        docker logs <container_id>: 查看容器的日志

网络相关

        docker network ls: 列出所有网络。
        docker network create <network_name>: 创建一个网络。
        docker network connect <network_name> <container_id>: 连接容器到网络。
        docker network disconnect <network_name> <container_id>: 断开容器与网络的连接

其他

        docker version: 显示 Docker 版本信息。
        docker info: 显示 Docker 系统信息。
        docker login: 登录到 Docker Hub 或其他镜像仓库。
        docker logout: 登出 Docker Hub 或其他镜像仓库。
        docker system prune: 清理无用的镜像、容器和网络资源。
        docker-compose up: 使用 Docker Compose 启动应用程序

相关文章:

docker之简介与安装

环境配置问题 没有虚拟机&#xff0c;我们往往是打包代码发给对方&#xff0c;然后让对方安装相应的环境&#xff0c;比如node、数据库&#xff0c;要是配置不同&#xff0c;项目很有可能无法运行&#xff0c;还会报错&#xff0c;如果多个人想要运行这份代码&#xff0c;那还得…...

vue之动态表单(优化)

代码资源在这儿 ↑ vue之动态表单优化 vue2js动态表单优化vue3ts动态表单优化 vue2js动态表单优化 效果图 目录结构 五个文件的完整代码: 以下是App.vue <template><div><router-view></router-view><Formpage /></div> </templa…...

web连接桌面打开gptmap

一&#xff1a;环境配置 需要的材料&#xff1a; python-3.10.4 我使用的是这个版本的&#xff0c;3.8.10 该版本和以下版本组件组合&#xff0c;验证过能正常运行&#xff08;python 3.6.8测试异常&#xff09; websockify 该项目有python版本和node js版本 noVNC 形式的app…...

做好需求分析的4大关键认知

探索如何正确的需求分析&#xff1f;本文详细介绍了4大关键点&#xff0c;帮助您明确用户与产品需求、深入挖掘用户动机&#xff0c;并为产品经理提供筛选需求的实用建议。 一、什么是需求分析以及重要性 需求分析指的是在建立一个新的或改变一个现存的产品时&#xff0c;确定新…...

Max Compute 操作记录

编译 max compute-spark git clone https://github.com/aliyun/MaxCompute-Spark cd spark-3.x mvn clean package -DskipTests在 target 目录下生成 以下两个文件。 spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar spark-examples_2.12-1.0.0-SNAPSHOT.jar2. DataWorks 上传…...

Windows 11 + Ubuntu20.04 双系统 坑里爬起来

ThinkPad x390 安装双系统&#xff0c;原有的磁盘太小&#xff0c;扩充了磁盘重新装系统&#xff0c;出现的问题&#xff0c;加以记录。 1. windows和ubuntu谁先安装&#xff0c;两个都可以&#xff0c;一般建议先安装windows&#xff0c;后安装ubuntu 2. 安装windows后&…...

touch手势事件及功能封装

文章目录 基本概念事件类型事件对象的属性touch事件封装单击&#xff0c;双击滑动方向&#xff08;上下左右&#xff09;距离角度 缩放旋转 常用功能封装滑动图片浏览实现拖拽操作游戏角色移动、跳跃 封装手写板功能 在现代Web开发中&#xff0c;移动设备的普及使得触摸屏交互成…...

面试问题记录

1.多线程&#xff0c;线程池 1.如何创建线程 实现 Runnable 接口&#xff0c;重写run方法&#xff1b;实现 Callable 接口&#xff0c;重写call方法&#xff1b;继承 Thread 类&#xff0c;重写run方法。 2.基础线程机制 Executors&#xff1a;可以创建四种类型的线程池&am…...

ZooKeeper的应用场景(集群管理、Master选举)

5 集群管理 随着分布式系统规模的日益扩大&#xff0c;集群中的机器规模也随之变大&#xff0c;因此&#xff0c;如何更好地进行集群管理也显得越来越重要了。 所谓集群管理&#xff0c;包括集群监控与集群控制两大块&#xff0c;前者侧重对集群运行时状态的收集&#xff0c;后…...

面试算法编程题

面试算法编程题记录 题目 : 羊圈里的狼 题目背景 : 一到了晚上&#xff0c;草原牧民的羊就会被赶进羊圈里。这时&#xff0c;野外的狼群就会打羊羔的主意。为了保护羊羔&#xff0c;牧民需要将羊圈里的狼赶走或杀死。由于来的狼很多&#xff0c;他需要快速甄别哪些狼在羊圈里面…...

JVM——JDK 监控和故障处理工具总结

文章目录 JDK 命令行工具jps:查看所有 Java 进程jstat: 监视虚拟机各种运行状态信息 jinfo: 实时地查看和调整虚拟机各项参数jmap:生成堆转储快照**jhat**: 分析 heapdump 文件**jstack** :生成虚拟机当前时刻的线程快照 JDK 可视化分析工具JConsole:Java 监视与管理控制台连接…...

多维时序 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络的数据多变量时间序列预测

多维时序 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络的数据多变量时间序列预测 目录 多维时序 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络的数据多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 多维时序 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经…...

ZoomIt v7.1

ZoomIt 是用于技术展示和演示的屏幕缩放、注释和录制工具。 还可以使用 ZoomIt 将屏幕截图截取到剪贴板或文件。 ZoomIt 在系统托盘中不显眼地运行&#xff0c;可使用可自定义的热键激活&#xff0c;它能够放大屏幕区域&#xff0c;在缩放时四处移动&#xff0c;并在缩放后的图…...

E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12

1. 场景 要在贴有K7系列FPGA芯片的板子和贴有KU系列FPGA芯片的板子之间通过光模块光纤QSFP实现40G的高速通信。可以选择的方式有多种&#xff0c;但本质的方案就一种&#xff0c;即实现4路GTX与GTY之间的通信。可以选择8B/10B编码通过GT IP核实现&#xff0c;而不能通过Aurora…...

js下载后端返回的文件

文件流下载 后端返回文件流形式&#xff0c;前端下载 // res 为请求返回的数据对象const file_data res.data // 后端返回的文件流const blob new Blob([file_data]) const href window.URL.createObjectURL(blob) // 创建下载的链接 const file_name decodeURI(res.header…...

计组 | 并行操作

前言 记录一些计组相关联的题集与知识点&#xff0c;方便记忆与理解。 并行 什么是并行处理 广义地讲&#xff0c;并行性有两种含义&#xff1a;一是同时性&#xff0c;指两个或多个事件在同一时刻发生&#xff1b;二是并发性&#xff0c;指两个或多个事件在同一时间间隔内发生…...

rabbitmq容器启动后修改连接密码

1、进入容器 docker exec -it rabbitmq bash 2、查看当前用户列表 rabbitmqctl list_users 3、修改密码 rabbitmqctl change_password [username] ‘[NewPassword]’ 4、修改后退出容器 ctrlpq 5、退出容器后即可生效&#xff0c;不需要重启容器...

PHP中的curl详细解析和常见大坑

这篇文章主要介绍了 PHP 中使用 CURL 之 php curl 详细解析和常见大坑 &#xff0c;现在分享给大家&#xff0c;也给大家做个参考。一起跟随小编过来看看吧。好啦&#xff0c;长话短说再长说&#xff0c;祭出今天的工具——CURL(Client URL Library)&#xff0c;当然今天以 PHP…...

[python] 使用Jieba工具中文分词及文本聚类概念

前面讲述了很多关于Python爬取本体Ontology、消息盒InfoBox、虎扑图片等例子&#xff0c;同时讲述了VSM向量空间模型的应用。但是由于InfoBox没有前后文和语义概念&#xff0c;所以效果不是很好&#xff0c;这篇文章主要是爬取百度5A景区摘要信息&#xff0c;再利用Jieba分词工…...

常见程序搜索关键字转码

个别搜索类的网站因为用户恶意搜索出现误拦截情况&#xff0c;这类网站本身没有非法信息&#xff0c;只是因为把搜索关键字显示在网页中&#xff08;如下图&#xff09;&#xff0c;可以参考下面方法对输出的关键字进行转码 DEDECMS程序 本文针对Dedecms程序进行搜索转码&…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...

CTF show 数学不及格

拿到题目先查一下壳&#xff0c;看一下信息 发现是一个ELF文件&#xff0c;64位的 ​ 用IDA Pro 64 打开这个文件 ​ 然后点击F5进行伪代码转换 可以看到有五个if判断&#xff0c;第一个argc ! 5这个判断并没有起太大作用&#xff0c;主要是下面四个if判断 ​ 根据题目…...