安装docker-生成Ubuntu16.04容器-安装ROSkinetic

安装docker

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业
版,强调安全,付费使用,支持周期 24 个月。
Docker CE 分为 stable,test 和 nightly 三个更新频道。每六个月发布一个 stable 版
本(18.09,19.03,19.09,……)。
Docker.com: https://docs.docker.com/install/linux/docker-ce/ubuntu/

我们主要讲解在 Ubuntu 16.04 上使用 apt 方式安装 Docker CE v18.09 的方法。

Step 1. 卸载旧版本

Ubuntu 官方库里的 Docker 版本比较旧,我们需要先卸载它。旧版本的 Docker 称为
docker、docker-engine、docker.io 等,使用以下命令卸载旧版本:

$ sudo apt remove docker docker-engine docker.io containerd runc

Step 2. 更新 apt 包索引

$ sudo apt update

Step 3. 安装依赖包

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使
用 HTTPS 传输的软件包以及 CA 证书。

$ sudo apt install
apt-transport-https
ca-certificates
curl
software-properties-common

Step 4. 添加官方 GPG 密钥

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo aptkey add -

Step 5. 添加 Docker 软件源

我们的 PC 一般是 x86_64/amd64 架构,可以使用以下的命令添加 Docker 软件源。

$ sudo add-apt-repository
“deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable”

Step 6. 安装 Docker CE

更新了软件源后需要更新包索引再执行安装。

$ sudo apt update
$ sudo apt install docker-ce

Step 7. 验证安装

$ sudo docker -v

查看 docker-ce 的版本,如果输出与下面类似的文本,则表明软件已经安装成功。

Docker version 19.03.8, build afacb8b7f0

Step 8. 配置免sudo运行docker命令

add dockergroup

$ sudo groupadd docker

add user to docker group

$ sudo gpasswd -a ${USER} docker

reboot docker service

$ sudo service docker restart

change current user to new group

$ newgrp docker

ensure docker can run normally without sudo

$ docker ps

拉取image制作容器container

Step 1. 配置镜像加速器

docker官方源里的 Docker 版本比较旧,我们需要配置一个国内源https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,阿里的或者中科大的都可以。
使用以下命令创建/修改配置文件:

$ sudo vim /etc/docker/daemon.json

输入内容

{
	"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}

Step 2. 拉取镜像

配置镜像源后,执行下面命令一般就不会连接超时了:

$ docker search ubuntu
$ docker pull ubuntu:16.04

docker pull 命令说明

$ docker pull [options] name[:tag|@digest]

成功后可以查看下载的镜像

$ docker images

REPOSITORY          TAG                                            IMAGE ID            CREATED             SIZE
ubuntu              latest                                         4e2eef94cd6b        2 weeks ago         73.9MB

Step 3. 镜像生成容器,进入容器

生成容器,重复执行docker run [IMAGE ID]命令可以生成多个容器:

$ docker run -it --name=[container name] --hostname=[host name] -v [/宿主机目录]:[/容器内目录] -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY [IMAGE ID]

docker run命令OPTIONS 说明*

$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

--attach, -a:连接 STDIN,STDOUT 和 STDERR
--detatch, -d:后台运行容器,并返回容器 ID
--env-file:从文件读取环境变量
--expose:开放一个或一组端口
--hostname , -h:容器的主机名 , --hostname=[host name]
--interactive , -i: 以交互模式运行容器,通常与 -t 同时使用;
--mount:将宿主计算机的文件系统连接到容器
--name:设定容器的名字 , --name=[container name]
--network:将容器连接到网络
--publish , -p: 端口映射,格式为:宿主计算机端口:容器端口
--rm:退出容器后自动删除
--tty, -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--volume , -v [/宿主机目录]:[/容器内目录] 挂载卷 ,  在启动 Docker 时,需要使用-v 选项挂载 X11 Server 的 socket 目录,并使用-e 选项设定 DISPLAY 环境变量。/tmp/.X11-unix:/tmp/.X11-unix:将宿主系统的/tmp/.X11-unix 目录挂载到Docker 系统的/tmp/.X11-unix 目录下
--env, -e:设定环境变量 , DISPLAY=$DISPLAY:将 Docker 系统的 DISPLAY 变量设置为宿主系统的 DISPLAY
变量

查看容器(正在运行的):

$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
debec71f8286        4e2eef94cd6b        "/bin/bash"         13 minutes ago      Up 13 minutes                           ubuntu16

查看容器(所有已生成的,无论是否运行):

$ docker container ls -a

docker container 命令说明

命令描述
docker container attach附加到正在运行的容器
docker container commit从容器的更改创建一个新的映像
docker container cp在容器和本地文件系统之间复制文件/文件夹
docker container create创建一个新的容器
docker container diff检查容器文件系统上文件或目录的更改
docker container exec在运行容器中运行命令
docker container export将容器的文件系统导出为tar存档
docker container inspect显示一个或多个容器的详细信息
docker container kill杀死一个或多个运行容器
docker container logs获取容器的日志
docker container ls列出容器
docker container pause暂停一个或多个容器内的所有进程
docker container port列出端口映射或容器的特定映射
docker container prune取出所有停止的容器
docker container rename重命名容器
docker container restart重新启动一个或多个容器
docker container rm删除(移除)一个或多个容器
docker container run在新容器中运行命令
docker container start启动一个或多个停止的容器
docker container stats显示容器的实时流资源使用统计信息
docker container stop停止一个或多个运行容器
docker container top显示容器的正在运行的进程
docker container unpause取消暂停一个或多个容器内的所有流程
docker container update更新一个或多个容器的配置
docker container wait阻止一个或多个容器停止,然后打印退出代码

进入容器:
只能开启一个终端,多终端同步

$ docker container attach [CONTAINER ID/NAME]

可以开启多个终端,互不干扰

$ docker exec -it [CONTAINER ID/NAME] /bin/bash

docker容器中查看容器linux版本
正确的姿势:

$ cat /etc/issue

错误的姿势,这样查到的是宿主机的系统:

$ cat /proc/version
$ uname -a

在Ubuntu16.04上安装ROSkinetic

Step 1. 设置sources.list

$ apt update
$ apt install sudo
$ sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’

(lsb_release -sc)报错,Ubuntu-core中不包含lsb_release,通过$ cat /etc/lsb-release查看DISTRIB_CODENAME,确定是xenial,填进上面命令中:

$ sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu xenial main” > /etc/apt/sources.list.d/ros-latest.list’

Step 2. 设置key

$ sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

Step 3. 更新package

$ sudo apt update

Step 4. 安装ROS kinetic完整版

$ sudo apt install ros-kinetic-desktop-full

Ubuntu dpkg:处理 xxx (–configure)时出错解决办法
*https://blog.csdn.net/gu362418124/article/details/8186744

Step 5. 初始化rosdep

在使用ROS之前需要初始化rosdep

$ sudo rosdep init
$ rosdep update

Step 6. 配置ROS环境

$ echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc
$ source ~/.bashrc

Step 7. 安装依赖项

$ sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

Step 8. 测试ROS是否安装成功

打开一个终端,输入以下命令,显示有ROS的版本,还有一些节点、端号:

$ roscore

再打开一个终端,输入以下命令,弹出一个小乌龟窗口:

$ rosrun turtlesim turtlesim_node

出现一个小乌龟的LOGO后,再打开一个终端,输入以下命令:

$ rosrun turtlesim turtle_teleop_key

再打开一个终端,输入以下命令,可以查看ROS节点信息:

$ rosrun rqt_graph rqt_graph

TODO:导出docker image

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值