使用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博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80130.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80130.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80130.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Elasticsearch中的_source字段講解

_source 在 Elasticsearch 查詢中用于限制返回的字段,類似于 SQL 中的 SELECT 指定列。 代碼示例: esSearchResults = es_service.search_documents({"query": {"terms": {"file_id":

【論文閱讀20】-CNN-Attention-BiGRU-滑坡預測(2025-03)

這篇論文主要探討了基于深度學習的滑坡位移預測模型,結合了MT-InSAR(多時相合成孔徑雷達干涉測量)觀測數據,提出了一種具有可解釋性的滑坡位移預測方法。 [1] Zhou C, Ye M, Xia Z, et al. An interpretable attention-based deep…

C++ 的 IO 流

💬 :如果你在閱讀過程中有任何疑問或想要進一步探討的內容,歡迎在評論區暢所欲言!我們一起學習、共同成長~! 👍 :如果你覺得這篇文章還不錯,不妨順手點個贊、加入收藏,并…

spring cloud gateway前面是否必須要有個nginx

在 **"客戶端 → Nginx (前置限流) → Spring Cloud Gateway → 微服務(Sentinel 熔斷限流)"** 的架構中,**Spring Cloud Gateway 前面并不強制要求必須有 Nginx**,是否需要取決于具體場景。以下是詳細分析: 一、必須使用 Nginx 的…

Spark和Hadoop之間的對比和聯系

(一)Spark概述 Spark是一種基于內存的快速、通用、可拓展的大數據分析計算引擎。Hadoop是一個分布式系統基礎架構。 1)官網地址:Apache Spark? - Unified Engine for large-scale data analytics 2)文檔查看地址&…

多線程進階(Java)

注:此博文為本人學習過程中的筆記 1.常見的鎖策略 當我們需要自己實現一把鎖時,需要關注鎖策略。Java提供的synchronized已經非常好用了,覆蓋了絕大多數的使用場景。此處的鎖策略并不是和Java強相關的,只要涉及到并發編程&#…

c++STL——stack、queue、priority_queue的模擬實現

文章目錄 stack、queue、priority_queue的模擬實現使用部分模擬實現容器適配器deque的介紹原理真實結構deque的迭代器deque的操作deque的優缺點 stack的模擬實現按需實例化queue的模擬實現priority_queue的模擬實現為何引入仿函數代碼實現 stack、queue、priority_queue的模擬實…

【深度學習—李宏毅教程筆記】Transformer

目錄 一、序列到序列(Seq2Seq)模型 1、Seq2Seq基本原理 2、Seq2Seq模型的應用 3、Seq2Seq模型還能做什么? 二、Encoder 三、Decoder 1、Decoder 的輸入與輸出 2、Decoder 的結構 3、Non-autoregressive Decoder 四、Encoder 和 De…

C++鐫刻數據密碼的樹之銘文:二叉搜索樹

文章目錄 1.二叉搜索樹的概念2.二叉搜索樹的實現2.1 二叉搜索樹的結構2.2 二叉搜索樹的節點尋找2.2.1 非遞歸2.2.2 遞歸 2.3 二叉搜索樹的插入2.3.1 非遞歸2.3.2 遞歸 2.4 二叉搜索樹的刪除2.4.1 非遞歸2.4.2 遞歸 2.5 二叉搜索樹的拷貝 3.二叉樹的應用希望讀者們多多三連支持小…

系統架構設計師:流水線技術相關知識點、記憶卡片、多同類型練習題、答案與解析

流水線記憶要點? ?公式 總時間 (n k - 1)Δt 吞吐率 TP n / 總時間 → 1/Δt(max) 加速比 S nk / (n k - 1) | 效率 E n / (n k - 1) 關鍵概念 周期:最長段Δt 沖突?: ?數據沖突(RAW) → 旁路/…

強制重裝及驗證onnxruntime-gpu是否正確工作

#工作記錄 我們經常會遇到明明安裝了onnxruntime-gpu或onnxruntime后,無法正常使用的情況。 一、強制重新安裝 onnxruntime-gpu 及其依賴 # 強制重新安裝 onnxruntime-gpu 及其依賴 pip install --force-reinstall --no-cache-dir onnxruntime-gpu1.18.0 --extra…

桌面我的電腦圖標不見了怎么恢復 恢復方法指南

在Windows操作系統中,“我的電腦”或在較新版本中稱為“此電腦”的圖標,是訪問硬盤驅動器、外部存儲設備和系統文件的重要入口。然而,有些用戶可能會發現桌面上缺少了這個圖標,這可能是由于誤操作、系統設置更改或是不小心刪除造成…

2025.04.20【Lollipop】| Lollipop圖繪制命令簡介

Customize markers See the different options allowing to customize the marker on top of the stem. Customize stems See the different options allowing to customize the stems. 文章目錄 Customize markersCustomize stems Lollipop圖簡介R語言中的Lollipop圖使用ggp…

docker-compose搭建kafka

1、單節點docker-compose.yml version: 3 services:zookeeper:image: zookeeper:3.8container_name: zookeeperports:- "2181:2181"volumes:- ./data/zookeeper:/dataenvironment:ZOO_MY_ID: 1ZOO_MAX_CLIENT_CNXNS: 100kafka:image: bitnami/kafka:3.7container_na…

【問題】一招解決vscode輸出和終端不一致的困擾

背景(閑話Trae) Trae是挺好,用了幾天,發現它時不時檢查文件,一檢測就轉悠半天,為此我把當前環境清空,就留一個正在調的程序,結果還照樣檢測,雖然沒影響什么,…

Git,本地上傳項目到github

一、Git的安裝和下載 https://git-scm.com/ 進入官網,選擇合適的版本下載 二、Github倉庫創建 點擊右上角New新建一個即可 三、本地項目上傳 1、進入 要上傳的項目目錄,右鍵,選擇Git Bash Here,進入終端Git 2、初始化臨時倉庫…

從零開始配置spark-local模式

1. 環境準備 操作系統:推薦使用 Linux 或 macOS,Windows 也可以,但可能會有一些額外的配置問題。 Java 環境:Spark 需要 Java 環境。確保安裝了 JDK 1.8 或更高版本。 檢查 Java 版本: bash 復制 java -version 如果…

前端~地圖(openlayers)繪制車輛運動軌跡(仿高德)

繪制軌跡路線軌跡路線描邊增加起點終點圖標繪制仿高德方向箭頭模仿車輛動態運動動畫 車輛運行軌跡 車輛軌跡經緯度坐標 const linePoints [new Point([123.676031, 43.653421]),new Point([123.824347, 43.697124]),new Point([124.197882, 43.946811]),new Point([124.104498…

分布式之CAP原則:理解分布式系統的核心設計哲學

聲明:CAP中的P原則都是需要帶著的 在分布式系統的設計與實踐中,CAP原則(又稱CAP定理)是開發者必須掌握的核心理論之一。它揭示了分布式系統在一致性(Consistency)、可用性(Availability&#x…

IF=40.8|腫瘤免疫:從免疫基因組學到單細胞分析和人工智能

一、寫在前面 今天分享的是發表在《Signal Transduction and Targeted Therapy》上題目為"Technological advances in cancer immunity: from immunogenomics to single-cell analysis and artificial intelligence"的文章。 IF:40.8 DOI:10.1038/s41392…