Docker深度学习

  • 感谢卢指导!
  • 安装出现错误GPG Err解决方案为:
1
2
3
4
5
rm /etc/apt/sources.list.d/cuda.list
rm /etc/apt/sources.list.d/nvidia-ml.list
apt-key del 7fa2af80
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub

Docker 安装

1. Docker 安装

1.1 卸载旧版本

1
sudo apt-get remove docker docker-engine docker.io

1.2 安装依赖项

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

1
2
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

1.3 添加源和密钥

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

设备未设置代理:使用 aliyun 镜像
1
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sources.list 添加 Docker 软件源

1
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs)  stable"
设置了代理:使用官方源
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sources.list 添加 Docker 软件源

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

Docker用法进阶

泡泡机器人SLAM与你一同成长

使用之前先看看本地都有哪些镜像和容器。

1
sudo docker ps -a

查看现有容器以及状态。

1
2
3
4
CONTAINER ID   IMAGE                                              COMMAND                  CREATED         STATUS                   PORTS                                       NAMES
0ac8c062fa10 pointclouddl:segmentation "/bin/sh -c 'service…" 8 minutes ago Up 8 minutes 6006/tcp, 50051/tcp, 0.0.0.0:2224->22/tcp brave_kilby
cd8b9c9c5b07 stereolabs/zed:3.0-gl-devel-cuda10.0-ubuntu18.04 "/bin/bash" 4 weeks ago Exited (0) 5 hours ago jolly_feynman
af07110a5157 stereolabs/kalibr "/ros_entrypoint.sh …" 4 weeks ago Exited (0) 4 weeks ago modest_leakey

e.g.现有用于laser slam的镜像, 设置了界面,ssh,基于amazinghao/ubuntu:graph_slam_clean镜像。

1
2
CONTAINER ID   IMAGE                                COMMAND          CREATED         STATUS         PORTS                            NAMES
fe7323d95d8f amazinghao/ubuntu:graph_slam_clean "./startup.sh" 9 seconds ago Up 7 seconds 22/tcp, 0.0.0.0:5900->5900/tcp laser_slam_env

一些容器内部设置必须在创建的时候就设置好,不然就只能重新创建。比如端口映射,文件夹挂载,设置别名,虚拟内存设置,时区设置等。

Docker可视化界面

泡泡机器人SLAM与你一同成长

可视化

其实关键就是添加一个可视化的应用,如X11 apps (and GL), is the key for display inside the docker,e.g.

1
2
3
4
5
6
7
8
#!/bin/bash
# This file is covered by the LICENSE file in the root of this project.
docker build -t api --build-arg uid=$(id -g) --build-arg gid=$(id -g) .
docker run --privileged \
-ti --rm -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $1:/home/data/ \
api
1
docker run --privileged -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/amazinghao/Data:/home/data/ api
  • -e DISPLAY=$DISPLAY,after this the gui inside the docker will show in the host machine

  • --privileged,will make all extend equippment available for the docker

Docker初体验


泡泡机器人SLAM与你一同成长

Docker简介

Docker 是一个开源的应用容器引擎,基于Go语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器可以认为是一种虚拟环境,它完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。

(我认为是一种管理虚拟环境的引擎,方便快速构建任何虚拟环境,而各个环境之间不会相互影响,并且支持快速移植和部署。)

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×