DOCKER VNC

reference

https://www.bilibili.com/video/av882822967/
以及泡泡机器人公众号文章

泡泡机器人创建了docker镜像,极大的提升了环境配置的效率。

docker 简介

准备

安装docker
安装vncviewer\或者使用ubuntu18.04自带的软件 remmina remote desktop client

直接应用泡泡镜像

ubuntu-xfce-vnc-ssh
ubuntu-openbox-vnc-ssh
ubuntu-ros-vnc-ssh
在 dockerhub 可以搜索的到泡泡机器人发布的镜像
在这里插入图片描述
选择不同的tages可以选择不同的镜像版本

1、 pull 镜像

docker pull paopaorobot/ubuntu/xfce-vnc

2、运行镜像的一个容器

docker run 
# 1使用最基础的功能,命令行
docker run -it paopaorobot/ubuntu-xfce-vnc
# 2使用带有nc界面的功能 -p 分配端口   -P系统自动设定端口
docker run -it -p 5900:5900 paopaorobot/ubuntu-xfce-vnc
# 如果使用-P 那么可以使用 以下查看端口
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
docker port priceless_sinoussl 22
# 然后打开vnc 5900端口
# 使用-e RESOLUTION=[width]x[height]设置分辨率
docker run -it -p 5900:5900 -e RESOLUTION=1920x1080 paopaorobot/ubuntu-xfce-vnc

# 3 使用带有ssh的功能
docker run -it -p 2222:22 paopaorobot/ubuntu-xfce-vnc
# 终端中会提示默认密码
# 然后另外ia打开一个终端进行ssh连接
ssh  -o 'UserKnownHostsFile=/dev/null' root@localhost -p 2222
# -o 'UserKnownHostsFile=/dev/null' 参数  使用null地址保存本地的key  即不保存,这样可以连接多个镜像 
# -e SSHPW+"密码" 参数来自定义设置ssh的密码   如 -e SSHPW=abc123  密码就是 abc123
# 上述几个功能三可以同时存在的
docker run -it -p 2222:22 -p 5900:5900 --privileged -e SSHPW=magic -e RESOLUTION=1920x1080 -v paopaorobot/ubuntu-xfce-vnc

docker run -it -p 2222:22 -p 5900:5900 --privileged  -e SSHPW=magic -e RESOLUTION=1920x1080 -v  /home/magic/WorkSpace:/root/WorkSpace paopaorobot/ros-vnc:kinetic 

#为了在容器中使用完全的root权限安装显卡驱动、cuda等 添加参数
--privileged
docker run 
# 1使用最基础的功能,命令行
docker run -it paopaorobot/ubuntu-xfce-vnc
# 2使用带有nc界面的功能 -p 分配端口   -P系统自动设定端口
docker run -it -p 5900:5900 paopaorobot/ubuntu-xfce-vnc
# 如果使用-P 那么可以使用 以下查看端口
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
docker port priceless_sinoussl 22
# 然后打开vnc 5900端口
# 使用-e RESOLUTION=[width]x[height]设置分辨率
docker run -it -p 5900:5900 -e RESOLUTION=1920x1080 paopaorobot/ubuntu-xfce-vnc

# 3 使用带有ssh的功能
docker run -it -p 2222:22 paopaorobot/ubuntu-xfce-vnc
# 终端中会提示默认密码
# 然后另外ia打开一个终端进行ssh连接
ssh  -o 'UserKnownHostsFile=/dev/null' root@localhost -p 2222
# -o 'UserKnownHostsFile=/dev/null' 参数  使用null地址保存本地的key  即不保存,这样可以连接多个镜像 
# -e SSHPW+"密码" 参数来自定义设置ssh的密码   如 -e SSHPW=abc123  密码就是 abc123
# 上述几个功能三可以同时存在的
docker run -it -p 2222:22 -p 5900:5900 --privileged -e SSHPW=magic -e RESOLUTION=1920x1080 -v paopaorobot/ubuntu-xfce-vnc

docker run -it -p 2222:22 -p 5900:5900 --privileged  -e SSHPW=magic -e RESOLUTION=1920x1080 -v  /home/magic/WorkSpace:/root/WorkSpace paopaorobot/ros-vnc:kinetic 

#为了在容器中使用完全的root权限安装显卡驱动、cuda等 添加参数
--privileged
--runtime=nvidia # 设置nvidia docker runtime
docker run -it -p 2222:22 -p 5900:5900 --runtime=nvidia --privileged  -e SSHPW=magic -e RESOLUTION=1920x1080 -v  /home/magic/WorkSpace:/root/WorkSpace paopaorobot/ros-vnc:kinetic 

3、远程开发

第一种方法:使用vscode 及 remote 插件
安装插件
运行docker

# -v 参数挂载本地文件到容器内
docker run -it -p 5900:5900 -v /home/pathtocode:/root/datapath paopaorobot/ubuntu-xfce-vnc 

第二种方法:使用scode及ssh

4、 使用dockerfile构建镜像

# FROM 表示基于哪个镜像来制作
# ENV
# COPY 拷贝代码进docker 镜像
# RUN 
# WORKDIR
# ADD
# EXPOSE 
# ENTRYPOINT 

5、导出导入镜像文件

commit 从容器更新/创建镜像
官方文档:https://docs.docker.com/engine/reference/commandline/commit/
在这里插入图片描述

docker commit -a "YYYY" -m "orbslam2 with point cloud " 9cc5d0201dfe ros-vnc-slam:v1.1

save/load 包含镜像历史信息

docker save [options] images [images...]
docker save -o nginx.tar nginx:latest

docker load [options]
docker load -i nginx.tar

export/import 从容器(container)中导出tar文件不包含镜像历史信息



docker export [options] container
docker export -o nginx-test.tar nginx-test
//其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

docker import [options] file|URL|- [REPOSITORY[:TAG]]
docker import nginx-test.tar nginx:imp

清理docker临时文件

清理空间

docker image prune
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值