【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问

【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问

文章目录

  • 【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问
  • 前言
  • 创建Ubuntu容器
    • 下载镜像
    • 运行容器
    • 连接容器
  • 搭建容器XFCE桌面环境
    • 安装ubuntu桌面
  • 总结


前言

docker ubuntu容器在深度学习领域的使用过程中安装桌面环境确实能带来便利,因此本文将介绍从创建Ubuntu容器,到安装桌面,再到VNC远程连接的全部过程。


创建Ubuntu容器

docker常用指令参考

下载镜像

docker pull image_name
# eg:docker pull ubuntu:20.04
docker images

运行容器

docker run -tid -p 3316:22 -p 5900:5900 -p 5901:5901 --name container_name --privileged=true image_name:tag /bin/bash
# eg:docker run -tid -p 3316:22 -p 5900:5900 -p 5901:5901 --name ubuntu20.04 --privileged=true ubuntu:20.04 /bin/bash
docker ps

连接容器

进入容器控制台

docker exec -it container_name /bin/bash
# eg: docker exec -it ubuntu20.04 /bin/bash


安装配置ssh

apt-get update && apt-get install -y sudo
# 设置密码:123456
passwd root
# 安装文本编辑器
sudo apt install vim -y
# SSH客户端
sudo apt install openssh-client -y
# SSH服务器:选择亚洲和上海
sudo apt install openssh-server -y
# 网络配置和诊断工具
sudo apt install net-tools -y
# 编辑sshd_config文件 
# 在末尾添加:PermitRootLogin yes
vim /etc/ssh/sshd_config 


启动ssh

# 启动ssh
service ssh start
# 查找与SSH相关的进程
ps -e|grep ssh


设置容器启动时启动ssh

# 编辑.bashrc文件 
# 在末尾添加:service ssh start
vim /root/.bashrc


用FinalShell工具连接容器


搭建容器XFCE桌面环境

安装ubuntu桌面

sudo apt-get update
# 安装XFCE桌面环境
sudo apt-get install -y xubuntu-desktop
# 或下面精简版本
sudo apt-get install -y --no-install-recommends xubuntu-desktop 
sudo apt-get install dbus-x11 -y
#安装中文字体,否则会出现乱码
sudo apt-get install fonts-wqy-microhei -y
#安装中文语言名和fcitx中文输入法
sudo apt-get install -y gnome-user-docs-zh-hans language-pack-gnome-zh-hans fcitx fcitx-pinyin fcitx-table-wubi

# 更改vnc4server的安装源:
vim /etc/apt/sources.list
# 上面替换成下面
# deb http://security.ubuntu.com/ubuntu/ focal-security universe
# deb http://archive.ubuntu.com/ubuntu/ bionic universe

sudo apt update
# 安装vncserver
sudo apt install -y vnc4server
# 启动vncserver生成配置文件
vncserver

初次启动需要设置密码:123456

# 备份启动设置
cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
# 编辑替换vnc启动设置
vim ~/.vnc/xstartup

替换内容:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export LANG=zh_CN.UTF-8
fcitx -r
startxfce4
# 重新启动vnc
vncserver -kill :1
vncserver -geometry 1920x1080 :1

安装VNC客户端【VNC官方下载地址】,傻瓜式安装即可。
发起远程控制(可以看到博主已经完全远程控制了):启动VNC Vewer–>File --New connection–>VNC Server输入wlan0的ip:port,name可以自定设置–>点击ok,输入用户密码(之前设置的vnc密码)。

重新启动容器后启动vnc,远程桌面可能会出现错误,需要进行以下操作:

# # 编辑.bashrc文件 
vim /root/.bashrc

在.bashrc末尾添加如下内容

# 目的是清理 X 服务器相关的锁文件和套接字文件
rm -rf /tmp/.X1-lock 	
rm -rf /tmp/.X11-unix/X1
# 自动启动桌面(每次启动容器后)
vncserver -geometry 1920x1080 :1

# 立即生效.bashrc 文件中的更改,否则再重新启动容器才能生效
source /root/.bashrc

总结

该文介绍了如何通过Docker创建一个基于Ubuntu18.04/20.04的容器,并在容器内安装桌面环境,然后使用VNC服务从本机进行连接。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

歇一歇,写写段子

无聊的日子都在写段子1.0 中学的时候喜欢看意林之类的杂志, 里面的作者用乱七八糟的理由跑去旅游,然后说“阻碍你脚步的永远只有逃离的勇气和对生活的热爱”, 我觉得太对了,可惜 12306 付款方式里没有勇气和热爱,不…

1203论文速读

1、Hierarchical Stochastic Block Model for Community Detection in Multiplex Networks∗ (多层网络社区检测的层次随机块模型 ) 全文总结:本文提出了一种新颖的贝叶斯模型,称为分层随机块模型(HSBM)&a…

双向长短期记忆(Bi-LSTM)神经网络介绍

长短期记忆(Long Short-Term Memory, LSTM)神经网络: 1.是Hochreiter和Schmidhuber设计的循环神经网络(Recurrent Neural Network, RNN)的改进版本。LSTM模型借鉴了人类大脑的选择性输入和选择性遗忘机制,获取序列中的关键信息,遗忘和当前预测…

.NET 9 中 LINQ 新增功能实现过程

本文介绍了.NET 9中LINQ新增功能,包括CountBy、AggregateBy和Index方法,并提供了相关代码示例和输出结果,感兴趣的朋友跟随我一起看看吧 LINQ 介绍 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的…

解决PowerPoint的流程图图标中输入文字位置偏下的问题

解决PowerPoint的流程图图标中输入文字位置偏下的问题 背景 在PowerPoint中,插入流程图形状,并在其内部输入中文字符,是很常规的操作。然而,有时输入文本发现文本整体偏下,靠近流程图下侧。 症状 文字位置偏下的效…

C++基础:list的基本使用

文章目录 1.基本构造和插入删除基本构造和尾插数据迭代器的分类内置排序sort任意位置插入删除 2.链表的合并,去重和剪切链表的合并链表去重链表的剪切 list的本质就是带头双向循环列表 1.基本构造和插入删除 基本构造和尾插数据 与之前vector的方法相同直接调用即可 迭代器的分…

SpringBoot中实现EasyExcel实现动态表头导入(完整版)

前言 最近在写项目的时候有一个需求,就是实现动态表头的导入,那时候我自己也不知道动态表头导入是什么,查询了大量的网站和资料,终于了解了动态表头导入是什么。 一、准备工作 确保项目中引入了处理 Excel 文件的相关库&#xff…

亚马逊云(AWS)使用root用户登录

最近在AWS新开了服务器(EC2),用于学习,遇到一个问题就是默认是用ec2-user用户登录,也需要密钥对。 既然是学习用的服务器,还是想直接用root登录,下面开始修改: 操作系统是&#xff1…

基于Java Springboot武汉市公交路线查询APP且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…

【C++】数组

1.概述 所谓数组,就是一个集合,该集合里面存放了相同类型的数据元素。 数组特点: (1)数组中的每个数据元素都是相同的数据类型。 (2)数组是有连续的内存空间组成的。 2、一维数组 2.1维数组定…

WPF中的VisualState(视觉状态)

以前在设置控件样式或自定义控件时&#xff0c;都是使用触发器来进行样式更改。触发器可以在属性值发生更改时启动操作。 像这样&#xff1a; <Style TargetType"ListBoxItem"><Setter Property"Opacity" Value"0.5" /><Setter …

day04【入门】MySQL学习(1)

目前的学习进度&#xff0c;如上图所示。从晚上开始学习MySQL数据库啦。 目录 1、数据库简介 2、数据集连接及准备工作 3、sql 语言中的注释 4、MySQL中常用数据类型 5、数据库中元素 6、创建表 7、insert插入记录 8、select查询 9、update修改数据 10、delete删除、t…

redis核心命令全局命令 + redis 常见的数据结构 + redis单线程模型

文章目录 一. 核心命令1. set2. get 二. 全局命令1. keys2. exists3. del4. expire5. ttl6. type 三. redis 常见的数据结构及内部编码四. redis单线程模型 一. 核心命令 1. set set key value key 和 value 都是string类型的 对于key value, 不需要加上引号, 就是表示字符串…

Dromara WarmFlow工作流动态指定办理人

Dromara WarmFlow工作流动态指定办理人 背景&#xff1a; 审批任务的办理人&#xff0c;通常是在流程设计器中预先设定好办理人&#xff0c;那如果想要在办理过程中指定办理人呢&#xff1f; 那不得不提一下本次的主角&#xff0c;来自Dromara组织的WarmFlow工作流&#xff0…

理解Parquet文件和Arrow格式:从Hugging Face数据集的角度出发

parquet发音&#xff1a;美 [pɑrˈkeɪ] 镶木地板&#xff1b;拼花木地板 理解Parquet文件和Arrow格式&#xff1a;从Hugging Face数据集的角度出发 引言 在机器学习和大数据处理中&#xff0c;数据的存储和传输格式对于性能至关重要。两种广泛使用的格式是 Parquet 和 Arr…

Kylin Server V10 下 Kafka 集群部署

一、ZooKeeper 集群部署 1、主机规划 主机名 IP 地址 myid 10.8.3.35 1 10.8.3.36 2 10.8.3.37 3 2、拓扑结构 3、部署 (1) 下载Zookeeper [root@localhost ~]# cd /usr/local [root@localhost local]# wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-…

【MySql】navicat连接报2013错误

navicat连接mysql报2013错误 报错信息1、检验Mysql数据库是否安装成功2、对Mysql的配置文件进行修改配置2.1、找到配置文件2.2、Linux下修改配置文本 3、连接进入mysql服务4、在mysql下执行授权命令 报错信息 Navicat连接mysql报2013错误 2013-Lost connection to MYSQL serve…

机器学习——决策树模型

决策树是如何工作的&#xff1f; 假设你在经营一家猫收养中心&#xff0c;并提供了一些功能&#xff0c;你想训练一个分类器来快速告诉你&#xff0c;动物到底是不是猫&#xff0c;这里有10个训练例子&#xff0c;并与这10个例子中的每一个相关联&#xff0c;我们将有关于动物…

65页PDF | 企业IT信息化战略规划(限免下载)

一、前言 这份报告是企业IT信息化战略规划&#xff0c;报告详细阐述了企业在面对新兴技术成熟和行业竞争加剧的背景下&#xff0c;如何通过三个阶段的IT战略规划&#xff08;IT 1.0基础建设、IT 2.0运营效率、IT 3.0持续发展&#xff09;&#xff0c;系统地构建IT管理架构、应…

【C++】—— 从零开始封装 Map 与 Set:实现与优化

人生的态度是&#xff0c;抱最大的希望&#xff0c;尽最大的努力&#xff0c;做最坏的打算。 —— 柏拉图 《理想国》 目录 1、理论基石——深度剖析 BSTree、AVLTree 与 RBTree 的概念区别 2、迭代器机制——RBTree 迭代器的架构与工程实现 3、高级容器设计——Map 与 Set…