如果您无法使用Docker的存储库来安装Docker CE,则可以下载.deb适用于您的发行版的 文件并手动安装。每次要升级Docker CE时都需要下载新文件。

转到https://download.docker.com/linux/ubuntu/dists/,选择你的Ubuntu版本,浏览pool/stable/和选择amd64, armhf,ppc64el,或s390x。

下载.deb要安装的Docker版本的文件:

树莓派3B+ Ubuntu mate

wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/armhf/docker-ce_17.03.2~ce-0~ubuntu-xenial_armhf.deb
虚拟机Ubuntu 16.04

wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.03.3~ce-0~ubuntu-xenial_amd64.deb
安装Docker CE,将下面的路径更改为您下载Docker软件包的路径。

sudo dpkg -i /path/to/package.deb

Docker守护程序自动启动。

通过运行hello-world 映像验证是否正确安装了Docker CE 。

sudo docker run hello-world

此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性消息并退出。

Docker CE已安装并正在运行。该docker组已创建,但未向其添加任何用户。您需要使用它sudo来运行Docker命令。继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令和其他可选配置步骤。

docker下载ros镜像:

虚拟机Ubuntu16.04

sudo docker pull ros:kinetic-perception-xenial
xenial: Ubuntu 16.04 VNC图形桌面不含ros

sudo docker pull dorowu/ubuntu-desktop-lxde-vnc:xenial
xenial: Ubuntu 16.04 VNC图形桌面已安装ros

sudo docker push jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
树莓派3B+ ros测试

sudo docker pull ros:kinetic-perception-xenial
运行镜像:

sudo docker run -it --privileged --device /dev/vchiq --device /dev/video0 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" ros:kinetic-perception-xenial

运行docker容器并使用端口访问 6080

sudo docker run -it --rm -p 6080:80 dorowu/ubuntu-desktop-lxde-vnc:xenial
浏览http://127.0.0.1:6080/

VNC查看器

将VNC服务端口5900转发给主机

sudo docker run -p 9080:80 -p 5900:5900 jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
现在,打开vnc查看器并连接到端口5900.如果您想通过密码保护vnc服务,请设置环境变量VNC_PASSWORD,例如

sudo docker run -p 9080:80 -p 5900:5900 -e VNC_PASSWORD=jyh654321 jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
需要用到USB硬件设备,如Kinect,摄像头

sudo docker run --privileged --device /dev/vchi --device /dev/video0 -p 7080:80 -p 5901:5900 jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros

注意,在虚拟机容器桌面复制命令需要,先复制到粘贴板,再右击粘贴,才能把命令发送到容器内;

在虚拟机 容器1338e4261c4d   dorowu/ubuntu-desktop-lxde-vnc:xenial里安装ROS;

ros环境搭建-ubuntu16.04系统安装ROS Kinetic

https://blog.csdn.net/jacka654321/article/details/83015542

测试:

roscore

后台运行:

启动roscore后,在同一个终端窗口,输入:

nohup roscore &
nohup rosrun turtlesim turtlesim_node &
你还看到一只萌萌的海龟出现在屏幕上,那么该怎么样来操纵这只小海龟呢?不需要重新打开新的一个终端,直接输入即可:

rosrun turtlesim turtle_teleop_key

启动 rviz

nohup roscore &
rviz

安装ROS-Academy-for-Beginners教学包

然后在创建一个名为tutorial_ws的工作空间,在它的的src路径下克隆ROS-Academy-for-Beginners软件包

mkdir -p tutorial_ws/src
cd tutorial_ws/src
git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
安装依赖

并且安装ROS-Academy-for-Beginners所需要的依赖

cd ~/tutorial_ws
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
注意:以上命令非常重要,缺少依赖将导致软件包无法正常编译和运行。

在开始编译之前,需要确保Gazebo在7.0版本以上

gazebo -v
如果你的Gazebo版本低于7.0,则需要进行升级

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo7
编译

接着回到catkin_ws下编译

cd ~/tutorial_ws
catkin_make
source ~/tutorial_ws/devel/setup.bash #刷新环境 方法一
rospack profile #刷新环境 方法二
注意:source命令,编译完成后必须刷新一下工作空间的环境,否则可能找不到工作空间。许多时候我们为了打开终端就能够运行工作空间中编译好的ROS程序,我们习惯把source ~/tutorial_ws/devel/setup.bash命令追加到~/.bashrc文件中(rosacademy_ws替换为你的工作空间名称),这样每次打开终端,系统就会刷新工作空间环境。你可以通过echo "source ~/tutorial_ws/devel/setup.bash" >> ~/.bashrc命令来追加。

运行仿真程序

编译完成后就可以运行本教学配套的仿真了,输入

source ~/tutorial_ws/devel/setup.bash
rospack profile
roslaunch robot_sim_demo robot_www.meiwanyule.cnwww.meiwanyule.cn spawn.launch

打开一个新的终端,输入以下命令,用键盘控制机器人移动

source ~/tutorial_ws/devel/setup.bash
rospack profile
rosrun robot_sim_demo robot_keyboard_teleop.py
聚焦控制程序窗口,按下i、j、l等按键,这样你就可以通过键盘来控制机器人的移动了。

过程图如下,记得运行前要刷新环境,或者用上面的方法把刷新命令添加到脚本;不然出报错robot_sim_demo not found;

刚开启时,云会动;

启动键盘控制后,

转向控制键:

yui

jkl

m,.

速度控制键:

qwe

zxc

局域网访问,本例nat方式,只能在虚拟机内打开,设置 桥接,可在宿主浏览器(局域网内)访问;

虚拟机设置frp,可实现外网访问;

https://blog.csdn.net/jacka654321/article/details/80879018

在虚拟机宿主,把容器打包成镜像:

sudo docker commit -m=www.mcyllpt.com/"xenial VNC ROS" -a="jacka654321" 1338e4261c4d jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
上传至你的dockerhub:

sudo docker login

发布镜像 :
将您的标记镜像上传到存储库: 
docker push username/repository:tag

sudo docker push jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros

感兴趣可以下载体验一下:

sudo docker pull jacka654321/ubuntu-desktop-lxde-vnc:xenial-ros
虚拟机Ubuntu系统里下载,

sudo docker pull osrf/gazebo:gzweb8
运行

sudo docker run -it --privileged --device /dev/vchiq --device /dev/video0 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" -v="/tmp/.gazebo/:/root/.gazebo/" --name=gazebo8 osrf/gazebo:gzweb8
虚拟机Ubuntu系统部署示例

在这个简短的例子中,我们将启动一个运行gazebo服务器的新容器,使用本地gazebo客户端连接到它,然后产生一个双倒立摆并记录模拟以供以后回放。

首先启动一个带安装卷的gazebo服务器进行日志记录并命名容器gazebo:

docker run -d -v="/tmp/.gazebo/:www.ysyl157.com /root/.gazebo/" --name=gazebo osrf/gazebo:gzweb8
现在使用相同的入口点在容器中打开一个新的bash会话来配置环境。然后下载double_pendulum模型并将其加载到模拟中。

sudo docker exec -it 75f2ecd7afa4 bash
进入容器后需要更换源:

备份原来的源

sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
将以前的源备份一下,以防以后可以用的。

更换源

sudo gedit /etc/apt/sources.list
将下面所有内容复制,粘贴并覆盖sources.list文件中的所有内容; 

阿里云

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted #Added by software-properties

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://mirrors.www.mingrenf178.com aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial multiverse universe #Added by software-properties
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted

## Major bug fix www.dasheng178.com updates produced after the final release of the
## distribution.
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse restricted universe main #Added by software-properties
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse restricted universe main #Added by software-properties
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
清华源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

如果容器内没有gedit nano vi等文本编辑工具,需要从宿主复制过去;

sudo docker cp /etc/apt/sources.list 75f2ecd7afa4:/etc/apt/sources.list
sudo docker cp /etc/apt/sources.list 1338e4261c4d:/etc/apt/sources.list
 让更新源生效

sudo apt-get update
配置环境

apt-get update && apt-get install -y curl
curl -o double_pendulum.sdf http://models.gazebosim.org/double_pendulum_with_base/model-1_4.sdf
gz model --model-name double_pendulum --spawn-file double_pendulum.sdf
要开始记录正在运行的模拟,只需使用gz log即可。

gz log --record 1
几秒钟后,通过禁用相同的标志继续并停止录制。

gz log --record 0
为了反省我们记录的记录,我们可以导航到日志目录并用于gz log打开和检查钟摆的运动和关节状态。这将允许您逐步摆过摆链的姿势。

cd ~/.gazebo/log/*/gzserver/
gz log --step --hz 10 --filter *.pose/*.pose --file state.log
如果您在本地安装了等效的Gazebo版本,则可以使用gzclient GUI连接到容器内的gzserver,方法是将主URI的地址设置为容器公共地址。

export GAZEBO_MASTER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' gazebo)
export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345
gzclient --verbose
在使用gzclient渲染的OpenGL视图中,您应该看到先前仍在振荡的移动双摆。从这里,您可以使用图形界面控制或监控模拟状态,添加更多摆锤,重置世界,生成更多日志等。要退出模拟,请关闭gzclient窗口并停止容器。

docker stop gazebo
docker rm gazebo
即使我们的旧凉亭容器已被移除,我们仍然可以看到我们的记录日志

如果您无法使用Docker的存储库来安装Docker CE的更多相关文章

  1. Docker - 在CentOS 7中安装Docker

    1-确认系统信息 # cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) # uname -a Linux CentOS-7 3. ...

  2. Docker - 在Ubuntu16.04中安装Docker CE

    Get Docker for Ubuntu Check system version root@Ubuntu16:~# uname -a Linux Ubuntu16 4.8.0-36-generic ...

  3. Docker:从头开始基于CentOS-Minimal安装Docker

    基础环境:win10+vmware 14 一.CentOS-Minimal安装 虚拟机安装CentOS-Minimal的步骤不多说,网络选Net,硬件不需要的什么声卡打印机全都删掉没什么问题,然后ce ...

  4. [Docker]CentOS7通过rpm包安装Docker

    前几天写过一篇文章:[Docker]CentOS7下Docker安装教程,直接使用yum命令下载Docker即可.但是前提是你需要***,所以这篇文章来讲讲,如果不会***,该如何安装Docker. ...

  5. [docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)

    docker清理容器 # 容器停止后就自动删除: docker run --rm centos /bin/echo "One"; # 杀死所有正在运行的容器: docker kil ...

  6. 配置docker官方源并用yum安装docker

    一.docker的官方安装文档: https://docs.docker.com/engine/installation/linux/centos/ 由docker给的文档可以看出它也只是去配置了一个 ...

  7. 【Docker】win10环境下安装Docker

    一.进入Docker官网 首先先到Docker官网下载最新官方Docker for Windows:Docker下载 在官网内可以查看到Docker的开发文档. 根据官网提示,Windows环境下下载 ...

  8. Docker 01 - CentOS 7 中安装 Docker 的详细步骤

    目录 1 初识 Docker 1.1 Docker 原理简介 1.2 Docker 核心概念 2 安装 Docker 2.1 查看系统内核版本 2.2 更新 yum 包 2.3 安装软件包 2.4 向 ...

  9. 一起玩"Docker"之1——Ubuntu配置安装Docker运行环境并安装(Ubuntu、Centos)镜像

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

随机推荐

  1. Java静态方法不能被覆盖

    // 静态方法不能被覆盖   /*class Super{     static String name(){         return "mother";     } }   ...

  2. POJ 3133 Manhattan Wiring (插头DP,轮廓线,经典)

    题意:给一个n*m的矩阵,每个格子中有1个数,可能是0或2或3,出现2的格子数为2个,出现3的格子数为2个,要求将两个2相连,两个3相连,求不交叉的最短路(起终点只算0.5长,其他算1). 思路: 这 ...

  3. JS实现跑马灯效果(向左,向上)

    <html> <head> <title>JS实现跑马灯效果</title> <style> * { font-size:12px; fon ...

  4. luogu愚人节比赛划水记

    先放链接:愚人节比赛 说好的 不毒瘤 呢?题目都太神奇了吧! 管理员的脑洞orz T1 这个可以说是蒙数据蒙出来的,直接输出"0",AC T2 本机房dalao成功发现" ...

  5. graphviz 布局和子图,表格教程

    有了这三个利器,就搞定架构图了. 子图间互相调用要开启 http://graphviz.org/pdf/dotguide.pdf

  6. JsonUtils工具类

    public class JsonUtils { public static void printTimeObject(Object obj, HttpServletResponse response ...

  7. ios之alloc和init

      复制代码 SomeObject *obj = [[SomeObject alloc] initWithCenter:centerPoint radius:radius]; 和   复制代码 Som ...

  8. SVN的使用二

    一,打开SCM 在xcode中,点击菜单: File -> Source Control –> Repositories 二,连接SVN服务器 1, 2,配置SVN服务器地址(http:/ ...

  9. Python使用三种方法实现PCA算法[转]

    主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句 ...

  10. 【搜索 技巧】Letter gaps

    需要一定技巧的搜索题 题目描述 记得做过这样一道题 Ponder This Challenge: In the string CABACB, each letter appears exactly t ...