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

使用docker在manjaro linux系统上运行windows和ubuntu

因为最近项目必须要使用指定版本的solidworks和maxwell(都只能在win系统上使用), 且目前的ubuntu容器是没有桌面的,导致我运行不了一些带图形的ros2功能。无奈之下,决定使用docker-compose写一下配置文件,彻底解决问题。

docker的基本操作和ros2安装看这篇文章的第一、二个专题:

实验环境搭建集锦-CSDN博客


dockerfile和docker-compose.yml的区别

dockerfile构建镜像,但没有运行镜像。需要用docker run运行

docker-compose.yml构建镜像也运行镜像,更适合多个镜像容器的编辑。编辑后直接使用 sudo docker compose up构建并运行(前提:默认文件名为docker-compose.yml)


使用docker-compose.yml安装windows-in-docker

建立一个docker-compose-win.yml文件

version: "3"
services:windows:image: dockurr/windowscontainer_name: windowsdevices:- /dev/kvmcap_add:- NET_ADMINports:- 8006:8006- 3389:3389/tcp- 3389:3389/udpstop_grace_period: 2mrestart: on-failureenvironment:VERSION: win10RAM_SIZE: 8GCPU_CORES: 4DISK_SIZE: 100G

尽量不要使用下面的目录挂载,没啥用不说,还总给报错。而且putty或者filezilla也是不管用的,因为docker容器本质上都是linux系统,只不过运行的可能会是win/ubuntu/其他。

    volumes: - /mnt/sharedisk/win10:C:\\User

这里开命令行证实一下,docker容器里并没有C:\\User这种路径,只有

如果在主机上运行docker cp,主机上的文件也只会复制到底层linux的文件目录下

docker cp docker-compose-linux.yml windows:/tmp

在宿主机上安装docker-compose并运行:

yay -S docker-compose
sudo docker compose -f docker-compose-win.yml up

如果每次都重新运行一次sudo docker compose -f docker-compose-win.yml up,会更换一个新的container id,但是已经安装好的软件还是会被保留的,因为并没有改变名字或者里面的设置。

所以每次需要打开的时候,直接运行

sudo docker start 容器id

想传输文件/下载的话,我一般会用百度网盘。目前用着还没啥问题,体验感很好。像我这里的port设置的是8006,所以我访问的网址就是主机网址:8006,http就可以登陆上去

另外,也可以通过安装支持RDP远程访问的软件, 在软件服务器地址和端口内容中分别填写IP地址和tcp/udp的port,在我这里是3389(我安装的软件是Remmina)。用户名填写为docker,密码不填写

根据Docker的设计,卷的大小通常是在创建时确定的,且默认情况下不支持动态扩容。因此,直接通过修改docker-compose文件来扩展现有卷的大小是不可能的,除非使用特定的存储驱动或文件系统支持动态调整。如果想要把这个容器从100G扩大到120G或者缩小,需要

sudo docker compose -f docker-compose-win.yml down -v  //删除卷
sudo docker rm 容器id            //直接删除容器
sudo docker compose -f docker-compose-win.yml up//重建资源

其他方法相对来说麻烦很多,这里就不提了。唯一的问题就在于需要重新安装各种软件,这个会有些麻烦,所以我最后还是没舍得再折腾扩容,100g足够跑solidworks,maxwell和comsol,还是很够用的。

使用docker-compose.yml安装ubuntu-desktop

建立一个docker-compose-linux.yml文件

version: "3"
services:ubuntu:image: colinchang/ubuntu-desktopcontainer_name: ubuntu_desktopshm_size: 1gports:- "主机地址:6901:6901"          #这么写可以限制本地访问environment:RAM_SIZE: 4GCPU_CORES: 2DISK_SIZE: 80GVNC_PW: 123456user: rootrestart: always目前的用户名是kasm_user,密码是123456

输入以下命令:

sudo docker compose -f docker-compose-linux.yml up

正在构建,需要保持网络畅通

可以先登陆上桌面,创建新的用户后,修改一下文件,让它不再使用root登陆就可以加强安全性。这个登陆用的用户名在没有创建新用户之前是无法通过文件被改变的。

另外就是个人发现,如果

ports:- 6901:6901        

 则firefox和chrome都可以通过https+本地路径+端口登陆上去,注意这里必须换成https,但是firefox登陆上去会报错,显示无法查看剪切板的内容

如果

ports:- "主机地址:6901:6901"

则只有chrome可以登陆上去,但不会有报错。最后放张图~

目前电脑上有的容器可以通过sudo docker ps -a命令来查看

剩下就都是老生常谈了,关于ros2安装的部分可以移步这篇文章

实验环境搭建集锦_isaac lab pycharm-CSDN博客

相关文章:

使用docker在manjaro linux系统上运行windows和ubuntu

因为最近项目必须要使用指定版本的solidworks和maxwell(都只能在win系统上使用), 且目前的ubuntu容器是没有桌面的,导致我运行不了一些带图形的ros2功能。无奈之下,决定使用docker-compose写一下配置文件,彻底解决问题…...

Flask应用部署通用指南

IIS 部署 Python Flask 应用通用指南 目录 概述环境准备应用准备wfastcgi 配置IIS 网站配置权限配置静态文件处理安全配置性能优化常见问题与解决方案生产环境最佳实践 概述 将 Flask 应用部署到 Windows IIS 服务器上需要使用 WSGI 适配器(如 wfastcgi&#xf…...

数据驱动增长:大数据与营销自动化的结合之道

数据驱动增长:大数据与营销自动化的结合之道 在这个信息爆炸的时代,企业如果还靠拍脑袋做营销决策,那基本等同于闭着眼睛开车,撞上南墙只是时间问题。大数据和营销自动化的结合,让营销从传统的经验主义走向科学决策&a…...

[Java微服务组件]注册中心P3-Nacos中的设计模式1-观察者模式

在P1-简单注册中心实现和P2-Nacos解析中,我们分别实现了简单的注册中心并总结了Nacos的一些设计。 本篇继续看Nacos源码,了解一下Nacos中的设计模式。 目录 Nacos 观察者模式 Observer Pattern观察者模式总结 Nacos 观察者模式 Observer Pattern 模式定…...

Java—— 常见API介绍 第二期

Runtime 说明: Runtime表示当前虚拟机的运行环境 获取Runtime对象的方法是静态的,可以用类名调用 不能用new关键字创建Runtime对象,只能调用获取Runtime对象的方法获取对象 其他的方法不是静态的,不能直接用类名调用,…...

意志力的源头——AMCC(前部中扣带皮层)

AMCC(前部中扣带皮层)在面对痛苦需要坚持的事情时会被激活。它的存在能够使人类个体在面临困难的事、本能感到不愿意的麻烦事情时,能够自愿地去做这些事——这些事必须是局部痛苦或宏观的痛苦,即微小的痛苦micro-sucks。 AMCC更多…...

ProfiNet转DeviceNet边缘计算网关多品牌集成实践:污水处理厂设备网络融合全流程解析

一、行业背景 随着环保政策趋严,污水处理行业对自动化、数据实时性和设备兼容性需求激增。传统污水处理厂普遍存在设备协议异构(如DeviceNet、ProfiNet混用)、数据孤岛严重的问题,现需通过捷米特DeviceNet转ProfiNet协议转换网关…...

CCLinkIE转EtherCAT边缘计算网关构建智能产线:跨协议设备动态组网与数据优化传输

一、行业背景 随着新能源汽车市场爆发式增长,汽车制造企业对产线效率、设备协同性及柔性生产能力的要求显著提升。传统产线多采用CC-LinkIEFieldBasic(CCLINKIEFB)协议的三菱PLC控制系统,而新一代伺服驱动设备普遍采用EtherCAT协…...

C 语言中的高级数据结构与内存管理

一、引言 C 语言作为一种广泛应用的系统级编程语言,以其高效性和灵活性著称。在 C 语言编程中,高级数据结构和内存管理是两个至关重要的方面。高级数据结构能够帮助我们更高效地组织和处理数据,而合理的内存管理则是保证程序性能和稳定性的关…...

Django 实现服务器主动给客户端发送消息的几种常见方式及其区别

Django Channels 原理 :Django Channels 是 Django 的一个扩展,它通过使用 WebSockets 等协议来处理长连接,使服务器能够与客户端建立持久连接,从而实现双向通信。一旦连接建立,服务器可以随时主动向客户端发送消息。…...

BR_频谱20dB 带宽(RF/TRM/CA/BV-05-C [TX Output Spectrum – 20 dB Bandwidth])

目录 一、规范要求 1、协议章节 2、测试目的 二、测试方法 1、样机初值条件: 2、测试步骤: 方法一:频谱仪 方法二:综测仪CMW500 3、预期结果 一、规范要求 1、协议章节 4.5.5 RF/TRM/CA/BV-05-C [TX Output Spectrum – 20 dB Ba…...

rabbitmq 面试题

一、基础概念 1. 什么是 RabbitMQ? - 基于 AMQP 协议的开源消息中间件,用于实现系统间的异步通信和解耦,支持多种消息模式(如发布/订阅、路由、主题等)。 1. 你了解那个rabbitmq, rabbitmq 的 虚拟机是…...

论文阅读:2025 arxiv AI Alignment: A Comprehensive Survey

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 AI Alignment: A Comprehensive Survey https://arxiv.org/pdf/2310.19852 https://alignmentsurvey.com/ https://www.doubao.com/chat/3367091682540290 速览 研究动机…...

spring事务事务传播

POROPAGATION_REQUIRED(必须) 解释: 存在事务时 当前方法已在事务中运行,直接加入该事务 无事务 则自动开启一个新事物,并在方法执行结束后提交或者回滚 举例 java Transactional public void transfer() {accountService.reduceBalance…...

JMeter介绍

文章目录 1. JMeter简介2. JMeter 下载3. JMeter修改编码集4. 启动并运行JMeter 1. JMeter简介 JMeter 是 Apache 组织使用 Java 开发的一款测试工具: 1、可以用于对服务器、网络或对象模拟巨大的负载 2、通过创建带有断言的脚本来验证程序是否能返回期望的结果 优…...

Elasticsearch:使用 ES|QL 进行搜索和过滤

本教程展示了 ES|QL 语法的示例。请参考 Query DSL 版本,以获得等效的 Query DSL 语法示例。 这是一个使用 ES|QL 进行全文搜索和语义搜索基础知识的实践介绍。 有关 ES|QL 中所有搜索功能的概述,请参考《使用 ES|QL 进行搜索》。 在这个场景中&#x…...

面向新一代扩展现实(XR)应用的物联网框架

中文标题: 面向新一代扩展现实(XR)应用的物联网框架 英文标题: Towards an IoT Framework for the New Generation of XR Applications 作者信息 Joo A. Dias,UNIDCOM - IADE,欧洲大学,里斯本&…...

Docker Overlay 网络的核心工作(以跨节点容器通信为例)

Docker 的 overlay 网络是一种基于 VXLAN(Virtual Extensible LAN)的多主机网络模式,专为 Docker Swarm 集群设计,用于实现跨节点的容器通信。它通过虚拟二层网络,允许容器在不同主机上像在同一局域网内一样通信。Dock…...

开发基于python的商品推荐系统,前端框架和后端框架的选择比较

开发一个基于Python的商品推荐系统时,前端和后端框架的选择需要综合考虑项目需求、开发效率、团队熟悉度以及系统的可扩展性等因素。 以下是一些推荐的框架和建议: 后端框架 Flask 优点: 轻量级:Flask的核心非常简洁,…...

CSRF 请求伪造Referer 同源置空配合 XSSToken 值校验复用删除

#CSRF- 无检测防护 - 检测 & 生成 & 利用(那数据包怎么整 找相似源码自己搭建整) 检测:黑盒手工利用测试,白盒看代码检验(有无 token ,来源检验等) 生成: BurpSuite->Engagement t…...

Datawhale AI春训营】AI + 新能源(发电功率预测)Task1

赛题链接 官网 新能源发电功率预测赛题进阶方案 下面是ai给的一些建议 新能源发电功率预测赛题进阶方案 一、时序特性深度挖掘 1. 多尺度周期特征 # 分钟级周期编码 train[15min_index] (train[hour]*4 train[minute]//15)# 周周期特征 train[weekday] pd.to_datetime…...

@EnableAsync+@Async源码学习笔记之二

从本文开始,就正式进入源码追踪阶段了,上一篇的最后我们提到了 EnableAsync 注解上的 Import(AsyncConfigurationSelector.class)了,本文就来看下它,源码如下: package org.springframework.scheduling.annotation;im…...

C++ STL 环形队列模拟实现

C STL 环形队列模拟实现 下面是一个使用C STL实现的环形队列&#xff08;Circular Queue&#xff09;的完整示例&#xff1a; #include <iostream> #include <vector> #include <stdexcept>template <typename T> class CircularQueue { private:std…...

每天五分钟深度学习PyTorch:0填充函数在搭建神经网络中的应用

本文重点 在深度学习中,神经网络的搭建涉及对输入数据、权重矩阵以及中间计算结果的处理。masked_fill 是 PyTorch 等深度学习框架中常用的张量操作函数,它通过布尔掩码(mask)对张量中的指定元素进行填充。当将矩阵元素填充为 0 时,masked_fill 在神经网络中发挥着重要作…...

pycharm中怎么解决系统cuda版本高于pytorch可以支持的版本的问题?

在PyCharm中安装与系统CUDA版本不一致的PyTorch是可行的。以下是解决方案的步骤&#xff1a; 1. 确认系统驱动兼容性 检查NVIDIA驱动支持的CUDA版本&#xff1a;运行 nvidia-smi&#xff0c;右上角显示的CUDA版本是驱动支持的最高版本。只要该版本不低于PyTorch所需的CUDA版本…...

【概率论】条件期望

在高等概率论中&#xff0c;给定一个概率空间 ( Ω , F , P ) (\Omega, \mathcal{F}, P) (Ω,F,P) 和其子 σ \sigma σ-代数 G ⊆ F \mathcal{G} \subseteq \mathcal{F} G⊆F&#xff0c;随机变量 X X X 关于 G \mathcal{G} G 的 条件期望 E [ X ∣ G ] E[X|\mathcal{G}…...

【java实现+4种变体完整例子】排序算法中【计数排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格

以下是计数排序的详细解析&#xff0c;包含基础实现、常见变体的完整代码示例&#xff0c;以及各变体的对比表格&#xff1a; 一、计数排序基础实现 原理 通过统计每个元素的出现次数&#xff0c;按顺序累加得到每个元素的最终位置&#xff0c;并填充到结果数组中。 代码示…...

Qt C++ 解析和处理 XML 文件示例

使用 Qt C 解析和处理 XML 文件 以下是使用 Qt C 实现 XML 文件处理的几种方法&#xff0c;包括解析、创建和修改 XML 文件。 1. 使用 QXmlStreamReader (推荐方式) #include <QFile> #include <QXmlStreamReader> #include <QDebug>void parseXmlWithStr…...

在服务器上部署MinIO Server

MinIO的优势 高性能&#xff1a;MinIO号称是目前速度最快的对象存储服务器&#xff0c;据称在标准硬件上&#xff0c;对象存储的读/写速度最高可以高达183 GB/s和171 GB/s&#xff0c;可惜我的磁盘跟不上 兼容性&#xff1a;MinIO基于Amazon S3协议&#xff0c;并提供了与S3兼…...

第二十七讲:AI+农学导论

关键词:人工智能、农业、作物识别、遥感、机器学习、案例实战 目录 📌 一、为什么农业需要人工智能? 📈 二、AI在农学中的典型应用场景 🧪 三、实战案例:AI识别作物类型(以随机森林为例) ✅ 数据集:iris(模拟作物种类识别) 📦 所需包: 🚀 数据准备: …...

医院科研科AI智能科研支撑平台系统设计架构方案探析

一、系统设计概述 1.1 系统定位 本系统是基于MCP(Model Context Protocol,模型上下文协议)协议构建的智能科研支撑平台,旨在为医院科研科室提供全流程AI辅助能力,覆盖课题立项、数据采集、分析建模到成果转化的完整科研生命周期。系统通过MCP协议实现与医院信息系统的深…...

Python基础总结(七)之条件语句

文章目录 条件语句if一、Python中的真假二、条件语句格式2.1 if语句格式2.2 if-else语句2.3 if-elif-else语句 三、if语句嵌套 条件语句if 条件语句其实就是if语句&#xff0c;在讲解if语句之前需要知道Python中对于真假的判断。 一、Python中的真假 在Python中非0的都为真&…...

Day10【基于encoder- decoder架构实现新闻文本摘要的提取】

实现新闻文本摘要的提取 1. 概述与背景2.参数配置3.数据准备4.数据加载5.主程序6.预测评估7.生成效果8.总结 1. 概述与背景 新闻摘要生成是自然语言处理&#xff08;NLP&#xff09;中的一个重要任务&#xff0c;其目标是自动从长篇的新闻文章中提取出简洁、准确的摘要。近年来…...

深度解析算法之二分查找(2)

17.二分查找 题目链接 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target…...

前端工程化之自动化测试

自动化测试 自动化测试为什么需要测试&#xff1f;什么时候需要考虑测试测试类型前端测试框架单元测试Jest 重点掌握项目示例package.jsonsrc/utils/math.tssrc/utils/math.test.ts进行测试jest.config.js覆盖率直观看覆盖率coverage/lcov-report/index.html src/main.test.tst…...

CANFD技术在新能源汽车通信网络中的应用与可靠性分析

一、引言 新能源汽车产业正处于快速发展阶段&#xff0c;其电子系统复杂度不断攀升&#xff0c;涵盖众多传感器、控制器与执行器。高效通信网络成为确保新能源汽车安全运行与智能功能实现的核心要素。传统CAN总线因带宽限制&#xff0c;难以满足高级驾驶辅助系统&#xff08;A…...

【机器学习】朴素贝叶斯算法:原理剖析与实战应用

引言 朴素贝叶斯算法就像是一位善于从经验中学习的侦探&#xff0c;根据已有的线索来推断未知事件的概率。这是一种基于概率论的分类算法&#xff0c;以贝叶斯定理为基础&#xff0c;却做了一个"朴素"的假设&#xff1a;认为所有特征彼此独立。虽然这个假设在现实中…...

【更新完毕】2025妈妈杯C题 mathercup数学建模挑战赛C题数学建模思路代码文章教学:音频文件的高质量读写与去噪优化

完整内容请看文章最下面的推广群 我将先给出文章、代码、结果的完整展示, 再给出四个问题详细的模型 面向音频质量优化与存储效率提升的自适应编码与去噪模型研究 摘 要 随着数字媒体技术的迅速发展&#xff0c;音频处理技术在信息时代的应用愈加广泛&#xff0c;特别是在存储…...

UI键盘操作

1、Selenium中send_keys除了可以模拟键盘输入之外&#xff0c;还有些时候需要操作键盘上的按键&#xff0c;甚至是组合键&#xff0c;比如CTRLA,CTRLC等&#xff0c; 所以我们需要代码操作键盘。使用的是send_keys里的Keys的类。 from selenium.webdriver.common.keys import …...

【正则表达式】正则表达式使用总结

正则表达式除了匹配普通字符外,还可以匹配特殊字符,这些特殊字符被称为“元字符”。‌ 特殊字符(元字符) ‌限定符‌:用于指定正则表达式中某个组件的出现次数。常见的限定符包括: *:0次或多次 +:1次或多次 ?:0次或1次 {n}:恰好n次…...

Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门

一、前言 在推流领域&#xff0c;尤其是监控行业&#xff0c;现在主流设备基本上都是265格式的视频流&#xff0c;想要在网页上直接显示监控流&#xff0c;之前的方案是&#xff0c;要么转成hls&#xff0c;要么魔改支持265格式的flv&#xff0c;要么265转成264&#xff0c;如…...

Spring Boot 中基于 Reactor 的服务器端事件(SSE)推送机制实践

Spring Boot 3.0 中基于 Reactor 的服务器端事件(SSE)推送机制实践 在现代 Web 应用开发中,实时数据交互越来越成为刚需,从股票行情的实时更新到社交平台的消息即时推送,服务器端事件(Server-Sent Events,简称 SSE)作为一种高效的单向数据传输技术,正发挥着重要作用。…...

CRC实战宝典:从原理到代码,全面攻克循环冗余校验

CRC实战宝典&#xff1a;从原理到代码&#xff0c;全面攻克循环冗余校验 github开源&#xff1a;CRC软硬件协同测试项目 CRC 简介 CRC&#xff08;循环冗余校验&#xff09;是一种强大的错误检测技术&#xff0c;广泛应用于数字网络和存储系统。它是确保数据完整性的重要方法…...

【愚公系列】《Python网络爬虫从入门到精通》056-Scrapy_Redis分布式爬虫(Scrapy-Redis 模块)

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…...

ZLMediaKit 和 SRS的区别,哪个更好用?

ZLMediaKit 和 SRS&#xff08;Simple RTMP Server&#xff09;是两个主流的开源流媒体服务器框架&#xff0c;各自在功能、性能、适用场景等方面存在显著差异。以下是两者的对比分析及选择建议&#xff1a; 一、核心差异对比 协议支持 ZLMediaKit&#xff1a;支持更广泛的流媒…...

【PyTorch】colab上跑VGG(深度学习)数据集是 CIFAR10

跑得结果是测试准确率10%&#xff0c;欠拟合。 import torch import torchvision.datasets from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter from torchvision import datasets, transformstransform tran…...

pytorch 51 GroundingDINO模型导出tensorrt并使用c++进行部署,53ms一张图

本专栏博客第49篇文章分享了将 GroundingDINO模型导出onnx并使用c++进行部署,并尝试将onnx模型转换为trt模型,fp16进行推理,可以发现推理速度提升了一倍。为此对GroundingDINO的trt推理进行调研,发现 在GroundingDINO-TensorRT-and-ONNX-Inference项目中分享了模型导出onnx…...

编程语言基础 - C++ 面试题

C++ 面试题 tags: c++ 文章目录 C++ 面试题关键字1. const2. static3. this 指针4. inline 内联函数5. volatile6. struct, class7. enum关键字 1. const 修饰变量:该变量不能被改变 修饰指针: 指针常量: 指针本身是常量 TYPE* const pContent;指向常量的指针:指针所指向…...

JVM笔记【一】java和Tomcat类加载机制

JVM笔记一java和Tomcat类加载机制 java和Tomcat类加载机制 Java类加载 * loadClass加载步骤类加载机制类加载器初始化过程双亲委派机制全盘负责委托机制类关系图自定义类加载器打破双亲委派机制 Tomcat类加载器 * 为了解决以上问题&#xff0c;tomcat是如何实现类加载机制的…...

Python----深度学习(全连接与链式求导法则)

一、机器学习和深度学习的区别 机器学习&#xff1a;利用计算机、概率论、统计学等知识&#xff0c;输入数据&#xff0c;让计算机学会新知 识。机器学习的过程&#xff0c;就是训练数据去优化目标函数。 深度学习&#xff1a;是一种特殊的机器学习&#xff0c;具有强大的能力和…...