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

docker 简介

准备

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

直接应用泡泡镜像

ubuntu-xfce-vnc-ssh

ubuntu-openbox-vnc-ssh

ubuntu-ros-vnc-ssh

在 dockerhub 可以搜索的到泡泡机器人发布的镜像

docker vnc Docker vnc -csdn_docker vnc


选择不同的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 vnc Docker vnc -csdn_docker_02

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