Windows11下Docker使用记录(一)

news/2025/1/16 5:45:48/

Docker使用记录(一)

    • 简单介绍
    • Docker安装
    • Docker 常用命令
    • Docker 可视化
    • Docker 使用GPU
    • 可视化rviz、gazebo

在进行ROS项目开发时,如果只有一台Windows电脑,我们可以考虑使用WSL或Docker来搭建ROS环境。在尝试了两种方式后,我们认为使用Docker容器更为方便和安全。本文的特色在于解决了ROS仿真软件在Docker容器中可视化的问题。

简单介绍

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源 1

具体而言,Docker就是一个轻量级的虚拟机,可以让我们在每个独立的container容器(类似 iPhone 的 app)中进行开发而不会干扰host系统,非常安全可靠。
在这里插入图片描述

Docker安装

Windows中安装 Docker Desktop: https://www.docker.com/products/docker-desktop/

值得注意的是,官方文档有说明 “借助 Docker Desktop for Windows 中支持的 WSL 2 后端,可以在基于 Linux 的开发环境中工作并生成基于 Linux 的容器,同时使用 Visual Studio Code 进行代码编辑和调试,并在 Windows 上的 Microsoft Edge 浏览器中运行容器” 2

翻译过来就是,在win11系统中利用WSL2安装的Ubuntu系统可以共享 win11中安装的docker desktop。只需确保如下设置:
在这里插入图片描述
在这里插入图片描述

Docker 常用命令

docker version  	#查看版本
docker ps 			#列出运行中的containers
docker info			#列出几乎images&containers所有相关信息
docker image ls		#列出所有镜像
docker container ls	#列出运行中的containers
docker run <options> <image_name>		#运行指定镜像
docker run -it <image_name>				#以交互模式运行指定镜像
docker stop <options> <container_id>	#关闭指定container
docker exec <options> <container_id> 	#进入指定容器
docker exec -it <container_id> 			#以交互模式进入指定容器
docker pull <image_name>		#从docker hub 里拉取镜像

也可以从Docker Desktop里直接拉取镜像

docker push <options> <image_name>		#将本地镜像上传至docker hub,但体积太大的会被拒绝
docker commit <options> <container_id> <new_image_name>	#将container转化为image

Docker 可视化

安装VcXsrv,可以看这篇,都是一样的操作。

Docker 使用GPU

确保host主机有Nvidia GPU,下载Nvidia发布的docker images.

在这里插入图片描述

可视化rviz、gazebo

当初使用docker就是为了在windows下使用ROS。查阅官方说明3,在docker container中可视化需要如下操作:
1.docker image 在Ubuntu(WSL2)下创建的
2. 在 Ubuntu中输入:

docker run -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --device=/dev/dri:/dev/dri -p 8080:10000 <docker_image_name> bash

在这里插入图片描述
在这里插入图片描述


  1. 菜鸟教程 | Docker 教程: https://www.runoob.com/docker/docker-tutorial.html ↩︎

  2. https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers ↩︎

  3. http://wiki.ros.org/docker/Tutorials/GUI ↩︎


http://www.ppmy.cn/news/1413379.html

相关文章

vue2与vue3相比哪个更好

vue2与vue3相比哪个更好 2是选项式api&#xff0c;3是组合式api 2的话数据如果是响应式的话需要定义在data里面 3的话因为要return出去所以需要进行定义const&#xff0c;借助ref&#xff08;&#xff09;或者reactive&#xff08;&#xff09;进行响应式数据切换 对于小型的…

【LeetCode热题100】【二叉树】二叉树的最大深度

题目链接&#xff1a;104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09; 最大深度等于左子树的最大深度和右子树的最大深度中的较大者加一 class Solution { public:int maxDepth(TreeNode *root) {if (!root)return 0;return max(maxDepth(root->left), max…

【python】Flask Web框架

文章目录 WSGI(Web服务器网关接口)示例Web应用程序Web框架Flask框架创建项目安装Flask创建一个基本的 Flask 应用程序调试模式路由添加变量构造URLHTTP方法静态文件模板—— Jinja2模板文件(Template File)<

appium图像识别之images-plugin插件

在进行App自动化测试的过程中&#xff0c;由于页面的复杂性&#xff0c;需要根据页面的技术实现&#xff0c;通过上下文来切换不同的定位类型&#xff0c;给定位元素的稳定性带来了不小的挑战&#xff1b;图像识别技术则不依赖于页面本身是用什么技术实现的&#xff0c;只要能识…

NumPy入门(一)

NumPy入门(一) 工具: jupyter notebook jupyter notebook 功能 : 数据处理 &#xff08;python 处理数据功能&#xff09; coding文字型的描述 富文本 word可视化支持 官网: https://jupyter.org/ 启动命令 jupyter notebook 1.1 numpy简介 Python的拓展库, 提供数据对象 nda…

pe格式从入门到图形化显示(十)-扩展最后一个节

文章目录 前言一、怎么扩展最后一个节&#xff1f;二、扩大节1.扩展节2.保存文件 前言 通过分析和解析Windows PE格式&#xff0c;并使用qt进行图形化显示 一、怎么扩展最后一个节&#xff1f; 在PE文件中&#xff0c;扩大最后一个节通常是通过修改PE文件头中的节表来实现的。…

搜索(DFS BFS)算法思想

DFS 常规DFS: 二叉树前序,中序&#xff0c;后序遍历-CSDN博客 void postorderTraversal(root)初始化一个空列表 arrfind访问总树(root,arr)return arrvoid find(temp, arr)if temp 为空return // 调用顺序由前中后序决定find递归访问左子树find递归访问右子树arr加入当前节点…

vue qrcode生成二维码

1. 安装&#xff1a;npm install vue-qr --save 2. 导入&#xff1a; vue2.x ---- import VueQr from vue-qr vue3.x ---- import vueQr from vue-qr/src/packages/vue-qr.vue3. 3. 使用&#xff1a; 生成二维码 <vue-qr ref"qrCode" :text"te…