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

news2025/4/24 19:51:50

因为最近项目必须要使用指定版本的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/windows
    container_name: windows
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    stop_grace_period: 2m
    restart: on-failure
    environment:
      VERSION: win10
      RAM_SIZE: 8G
      CPU_CORES: 4
      DISK_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-desktop
    container_name: ubuntu_desktop
    shm_size: 1g
    ports:
      - "主机地址:6901:6901"          #这么写可以限制本地访问
    environment:
      RAM_SIZE: 4G
      CPU_CORES: 2
      DISK_SIZE: 80G
      VNC_PW: 123456
    user: root
    restart: 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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2341910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis(01)Redis连接报错Redis is running in protected mode……的解决方案

一、引言:从一个典型连接错误说起 在分布式系统开发中,Redis 作为高性能缓存中间件被广泛使用。 然而,当我们首次部署 Redis 并尝试从外部客户端连接时,常常会遇到以下错误: DENIED Redis is running in protected m…

18487.1-2015-解读笔记之四-交流充电之流程分析

前面简单分析了国标交流充电桩插枪监测逻辑和PWM控制逻辑,下面简单分析一下交流充电流程 附录A 交流充电连接过程和控制时序如下: 由此可以将充电流程大概分为几个阶段: 1.充电连接阶段 充电连接阶段CC(电阻由无穷大到R4RC&…

Linux 管道理解

一、什么是管道 1.1 unix中最古老的进程间通信 1.2 一个进程链接到另一个进程的数据流称为“管道”: 图解: 二、管道通信的原理 2.1当我们创建一个进程然后打开一个文件的时候 会经过以下步骤: ①首先要描述这个进程,为这个…

国产RK3568+FPGA以 ‌“实时控制+高精度采集+灵活扩展”‌ 为核心的解决方案

RK3568FPGA方案在工业领域应用的核心优势 一、‌实时性与低延迟控制‌ ‌AMP架构与GPIO中断技术‌ 通过非对称多处理架构(AMP)实现Linux与实时操作系统(RTOS/裸机)协同,主核负责调度,从核通过GPIO中断响应紧…

Pycharm(十五)面向对象程序设计基础

目录 一、面向对象基本概述 class 类名: 属性(类似于定义变量) 行为(类似于定义函数,只不过第一个形参要写self) 二、self关键字介绍 三、在类内部调用类中的函数 四、属性的定义和调用 五、魔法方法init方法 六、魔法方法str和del方法 七、案例-减肥 一、…

华三(H3C)与华为(Huawei)设备配置IPsec VPN的详细说明,涵盖配置流程、参数设置及常见问题处理

以下是针对华三(H3C)与华为(Huawei)设备配置IPsec VPN的详细说明,涵盖配置流程、参数设置及常见问题处理: 一、华三(H3C)设备IPsec VPN配置详解 1. 配置流程 华三IPsec VPN配置主要…

店匠科技摘得 36 氪“2025 AI Partner 创新大奖”

全场景 AI 方案驱动跨境电商数智化跃迁 4 月 18 日,36 氪 2025 AI Partner 大会于上海盛大开幕。大会紧扣“Super App 来了”主题,全力探寻 AI 时代的全新变量,探索 AI 领域下一个超级应用的无限可能性。在此次大会上,跨境电商独立站 SaaS 平台店匠科技(Shoplazza)凭借“店匠跨…

Joint communication and state sensing under logarithmic loss

摘要——我们研究一种基本的联合通信与感知设置,其中发射机希望向接收机传输一条消息,并同时通过广义反馈估计其信道状态。我们假设感知目标是获得状态的软估计(即概率分布),而非通常假设的点估计;并且我们…

Linux:41线程控制lesson29

1.线程的优点: • 创建⼀个新线程的代价要⽐创建⼀个新进程⼩得多 创建好线程只要调度就好了 • 与进程之间的切换相⽐,线程之间的切换需要操作系统做的⼯作要少很多 为什么? ◦ 最主要的区别是线程的切换虚拟内存空间依然是相同的&#x…

HTMLCSS实现网页轮播图

网页中轮播图区域的实现与解析 在现代网页设计中&#xff0c;轮播图是一种常见且实用的元素&#xff0c;能够在有限的空间内展示多个内容&#xff0c;吸引用户的注意力。下面将对上述代码中轮播图区域的实现方式进行详细介绍。 一、HTML 结构 <div class"carousel-c…

Java基础第21天-正则表达式

正则表达式是对字符串执行模式匹配的技术 如果想灵活的运用正则表达式&#xff0c;必须了解其中各种元字符的功能&#xff0c;元字符从功能上大致分为&#xff1a; 限定符选择匹配符分组组合和反向引用符特殊字符字符匹配符定位符 转义号\\:在我们使用正则表达式去检索某些特…

CSGO 盲盒开箱系统技术实现深度解析

一、系统架构设计 &#xff08;一&#xff09;前后端分离架构 采用前后端分离模式&#xff0c;后端专注业务逻辑处理与数据管理&#xff0c;前端负责用户交互界面呈现。后端通过 RESTful API 与前端进行数据交互&#xff0c;这种架构能有效提高开发效率&#xff0c;便于团队分…

JS通过GetCapabilities获取wms服务元数据信息并在SuperMap iClient3D for WebGL进行叠加显示

获取wms服务元数据信息并在三维webgl客户端进行叠加显示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

7N60-ASEMI无人机专用功率器件7N60

编辑&#xff1a;LL 7N60-ASEMI无人机专用功率器件7N60 型号&#xff1a;7N60 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 最大漏源电流&#xff1a;7A 漏源击穿电压&#xff1a;600V 批号&#xff1a;最新 RDS&#xff08;ON&#xff09;Max&#xff1a;1.20Ω …

Pytorch图像数据转为Tensor张量

PyTorch的所有模型&#xff08;nn.Module&#xff09;都只接受Tensor格式的输入&#xff0c;所以我们在使用图像数据集时&#xff0c;必须将图像转换为Tensor格式。PyTorch提供了torchvision.transforms模块来处理图像数据集。torchvision.transforms模块提供了一些常用的图像预…

Java 加密与解密:从算法到应用的全面解析

Java 加密与解密&#xff1a;从算法到应用的全面解析 一、加密与解密技术概述 在当今数字化时代&#xff0c;数据安全至关重要。Java 加密与解密技术作为保障数据安全的关键手段&#xff0c;被广泛应用于各个领域。 加密是将明文数据通过特定算法转换为密文&#xff0c;使得…

Java基础系列-HashMap源码解析2-AVL树

文章目录 AVL树左旋右旋左旋右旋的4种情况LL 型RR 型LR 型RL 型 实际插入时怎么判断是那种类型&#xff1f;插入时注意事项删除节点 AVL树 为避免BST树退化成链表的极端情况&#xff0c; AVL 树应运而生。 平衡因子取值&#xff08;-1&#xff0c;0&#xff0c;1&#xff09;…

MySQL的日志--Redo Log【学习笔记】

MySQL的日志--Redo Log 知识来源&#xff1a; 《MySQL是怎样运行的》--- 小孩子4919 MySQL的事务四大特性之一就是持久性&#xff08;Durability&#xff09;。但是底层是如何实现的呢&#xff1f;这就需要我们的Redo Log&#xff08;重做日志&#xff09;闪亮登场了。它记录着…

【AI应用】免费代码仓构建定制版本的ComfyUI应用镜像

免费代码仓构建定制版本的ComfyUI应用镜像 1 创建代码仓1.1 注册登陆1.2 创建代码仓1.5 安装中文语言包1.4 拉取ComfyUI官方代码2 配置参数和预装插件2.1 保留插件和模型的版本控制2.2 克隆插件到代码仓2.2.1 下载插件2.2.2 把插件设置本仓库的子模块管理3 定制Docker镜像3.1 创…

​​Agentic AI——当AI学会主动思考与决策,世界将如何被重塑?

一、引言&#xff1a;2025&#xff0c;Agentic AI的元年 “如果ChatGPT是AI的‘聊天时代’&#xff0c;那么2025年将开启AI的‘行动时代’。”——Global X Insights[1] 随着Agentic AI&#xff08;自主决策型人工智能&#xff09;的崛起&#xff0c;AI系统正从被动应答的“工具…