ubuntu docker配置cuda+anaconda+vscode+tensorflow环境的镜像

2023-05-16

ubuntu docker配置cuda+anaconda+vscode+tensorflow环境

  • docker 安装
  • docker基本操作
    • 查看镜像
    • 删除镜像
    • 官方镜像
  • 容器基本操作
    • 从镜像启动容器
    • 列出所有容器
    • 终止容器
    • 启动容器
    • 删除容器
    • 容器保存为镜像
  • nvidia-container-toolkit
  • lambda stack
  • 容器配置环境
    • 文件传输
    • 1换源
    • 开启ssh服务
    • 安装anaconda
    • 用主机vscode连接容器

docker 安装

下载docker Install Docker Engine on Ubuntu
https://docs.docker.com/engine/install/ubuntu/

dockerfile 用法

dockerfile 换源 https://zhuanlan.zhihu.com/p/121660487

docker 中文文档
https://yeasy.gitbook.io/docker_practice/

Docker部署Anaconda+Tensorflow深度学习环境(包括CUDA和cudnn
https://zhuanlan.zhihu.com/p/281112065)

docker基本操作

查看镜像

列出本地主机上的镜像

sudo  docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

删除镜像

docker rmi hello-world

删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器。

$ docker images

$ docker rmi $(docker images | grep "none" | awk '{print $3}')
直接删除带none的镜像,直接报错了。提示先停止容器。

$ docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器

$ docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //删除容器

$ docker rmi $(docker images | grep "none" | awk '{print $3}') //删除镜像 

然后,进行免秘钥配置:

sudo addgroup --system docker
sudo adduser $USER docker
newgrp docker

官方镜像

tensorflow镜像https://tensorflow.google.cn/install/docker?hl=zh_cn

docker pull tensorflow/tensorflow:latest-gpu-jupyter 
docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu-jupyter
sudo docker run -it tensorflow/tensorflow:latest-gpu-jupyter bash
sudo docker run -it --name=zhl tensorflow/tensorflow:latest-gpu-jupyter  bash

https://hub.docker.com/r/nvidia/cuda/

容器基本操作

Container的安装与使用 - 郝先森的文章 - 知乎
https://zhuanlan.zhihu.com/p/483416326

从镜像启动容器

所需要的命令主要为 docker run。

sudo docker run -t -i ubuntu:18.04 /bin/bash 
docker run ubuntu:18.04 /bin/echo 'Hello world'

-p 80:5000 本地端口:容器端口
-d 后台运行
-v 挂载
-t 选项让Docker分配一个伪终端并绑定到容器的标准输入上
-i 则让容器的标准输入保持打开。

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

  1. 检查本地是否存在指定的镜像,不存在就从
  2. 利用镜像创建并启动一个容器
  3. 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  4. 从地址池配置一个 ip 地址给容器
  5. 执行用户指定的应用程序
  6. 执行完毕后容器被终止

列出所有容器

sudo docker ps --all
#列出所有容器 包括终止的
sudo docker container ls 
#列出所有容器 不包括终止的 -a 包括终止的

终止容器

docker container stop [name]
docker container restart [name]

启动容器

docker container ls -a #先看看所有的容器
docker start [容器id]
docker container start zhl
docker exec -it 74e4 bash

删除容器

docker container rm container_name
docker container prune #清理所有处于终止状态的容器

容器保存为镜像

我们可以通过以下命令将容器保存为镜像

docker commit pinyougou_nginx mynginx

pinyougou_nginx是容器名称
mynginx是新的镜像名称

nvidia-container-toolkit

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html#installation-guide

nvidia-docker2

    https://github.com/NVIDIA/nvidia-docker/tree/gh-pages/

nvidia-container-toolkit

    https://github.com/NVIDIA/nvidia-container-runtime/tree/gh-pages/

libnvidia-container

    https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/

lambda stack

https://blog.csdn.net/zdx1996/article/details/88774674
https://github.com/lambdal/lambda-stack-dockerfiles
一次性安装TensorFlow,Keras,Caffe,Caffe,CUDA,cuDNN和NVIDIA驱动程序

容器配置环境

sudo docker run -it --gpu  --name=zhl -p  8001:22  -p  8002:6000  -p  8003:6006  -v /data/zhl_docker:/data  nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04

sudo docker run --gpus all -it   --name=zhl -p  8001:22  -p  8002:6000  -p  8003:6006  -v /data/zhl_docker:/data  lambda-stack:18.04 bash

sudo docker run --gpus 2 lambda-stack:18.04 python3 -c "import torch; print(torch.cuda.device_count())"

建立了一个nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04 镜像的容器, 将 本地端口:容器端口 映射,容器name = zhl, 容器路径/data 挂载在 本地路径 /data/zhl_docker 上 。之后对容器进行操作。

文件传输

方法一 通过挂载路径,将文件放在本地路径 /data/zhl_docker

方法二 拷贝

docker cp 服务器文件路径 容器名:容器路径

1换源

Docker容器内更新apt-get 国内加速

sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
apt-get update

3、更新apt-get
apt-get update

4、下载yum工具
apt-get install yum

开启ssh服务

apt-get install openssh-server  #安装openssh-server
ps -e | grep ssh #查看ssh服务是否启动
service ssh start # 启动ssh服务

apt install net-tools #安装网络服务
ifconfig 
# 172.17.0.2

vim /etc/ssh/sshd_config 
Port 8080
PermitRootLogin yes
/etc/init.d/ssh restart
passwd   #修改密码


sudo ssh root@172.17.0.2 -p 8080

安装anaconda

参考文件传输本地下载 官网下载sh文件放在映射目录中
安装教程 https://zhuanlan.zhihu.com/p/426655323


bash Anaconda3-2021.05-Linux-x86_64.sh
#conda init 选yes
source ~/.bashrc

用主机vscode连接容器

下载插件 Remote - Containers
在 VS Code 中使用容器开发 教程

到此为之,通用的docker 容器cuda+anaconda+vscode+tensorflow 配置教程完毕。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu docker配置cuda+anaconda+vscode+tensorflow环境的镜像 的相关文章

  • ros --- 双目相机内参与外参标定

    ros 双目相机内参与外参标定 小觅相机直接获取参数手动重新标定1 双目相机内外参标定生成标定板录制 stereo calibra bag标定标定结果标定验证 2 双目 43 imu外参标定录制 stereo 43 imu calibra
  • RT-Thread之入门跑代码

    本文将讲述如何在window10中利用tensorflow跑代码 xff0c 并且编译成bin文件 xff0c 最后在k210中运行 一 在window上安装tensorflow框架 xff08 python3 7 xff09 1 安装An
  • keil5的基本使用

    项目文件后缀 硬件下载 1 编译 2 下载 软件仿真 一 基本知识 1 选择软件仿真选项 2 编译 3 启动软件仿真 4 运行代码 二 软件仿真的具体使用 1 我们想运行到 哪一步就在那一步添加断点 xff08 在左边的空白处左键点一下就可
  • pytorch之池化层

    实际图像里 xff0c 我们感兴趣的物体不会总出现在固定位置 xff1a 即使我们连续拍摄同一个物体也极有可能出现像素位置上的偏移 这会导致同一个边缘对应的输出可能出现在卷积输出 Y中的不同位置 xff0c 进而对后面的模式识别造成不便 在
  • 串口通信协议

    通信协议的基本概念 用于定义通信过程及细节规则的协议称为通信协议 xff0c 通信系统之间为了完成通信所必须遵循的规则和约定 xff08 数据包格式 字段的内容 字段的含义 发送的时间 接收的时间等细节 xff09 个人理解 xff1a 就
  • gazebo的安装

    安装ros 1 1设置软件源 xff1a 清华源或者阿里都可 sudo sh c 39 etc lsb release amp amp echo 34 deb Index of ros ubuntu 清华大学开源软件镜像站 Tsinghua
  • 驱动开发基础

    1 Hello驱动 我们应用程序使用open函数的时候 xff0c 会调用内核的sys open函数 xff0c 然后接下来 1 然后打开普通文件的话会使用文件系统操作硬件 xff0c 2 要是打开驱动文件 xff0c 会使用驱动程序对应的
  • ARM架构与编程 · 基于IMX6ULL

    一 嵌入式系统硬件介绍 cpu 43 RAM xff08 内存 xff09 43 FALSH 集成 xff08 flash存储设备 xff09 61 MCU 单片机 AP MPU 进化之后可以外接内存和存储设备 跑复杂的操作系统 xff0c
  • 嵌入式常用算法

    1 冒泡排序 1 两两之间对比 xff0c 要是顺序排 xff0c 一轮过后最大的就是最后一个 2 下一轮参加排序的数比上一轮少一个 include lt iostream gt using namespace std void paixu
  • 实习面试的总结

    2023 4 3 阿凡达机器人 驱动开发实习生 1 怎么注册一个字符设备 注销 1 注册一个设备号 2 设备号加载进内核 3 创建类 4 创建设备 注销 1 从内核中删除 2 删除设备 3 删除类 2 怎么将新加入的网络设备加入到内核中去
  • 字符设备结构体与probe函数

    1 设备结构体 设备结构体 struct ap3216c dev dev t devid 设备号 主设备号 43 次设备号 struct cdev cdev cdev 字符设备对象 xff0c 字符设备驱动的一种结构体类型 struct c
  • SLAM --- VIO 基于 EKF 开源

    1 VIO based on EKF 已知一致性的Visual Inertial EKF SLAM 实现添加链接描述
  • 暗夜精灵7 linux

    Ubuntu18 04 安装nvidia显卡驱动 distro non free 小乌坞的博客 CSDN博客 注意在关闭显示界面的时候需要输入密码 xff0c 不然会一直卡着 在验证是否屏蔽驱动的时候 xff0c 要先重启一下 cuda L
  • linux应用编程

    项目内容 开发板内部使用c语言调用硬件驱动实现各种测试功能 xff0c 保存测试结果 外部程序通过socket接口使用tcp协议与开发板通信进行信息传输 xff0c 最后使用python GUI构造一个界面按照测试顺序逐步显示出各个模块的测
  • NUC10快乐装机

    NUC10装机 由于为了RoboMaster比赛 xff0c 身为全队唯一一个视觉队员兼队长的我 xff0c 经过疫情期间的再三斟酌 xff0c 最后决定工控机选择为nuc10 为什么选择nuc10 作为第一年参赛的新队伍 xff0c 视觉
  • 什么是PID?讲个故事,通俗易懂

    什么是PID xff1f PID xff0c 就是 比例 xff08 proportional xff09 积分 xff08 integral xff09 微分 xff08 derivative xff09 xff0c 是一种很常见的控制算
  • C语言对寄存器的封装

    目录 1 封装总线和外设基地址 2 封装寄存器列表 3 修改寄存器的位操作的方法 把变量的某位清零 把变量的某几个连续位清零 对变量的某几位进行赋值 对变量的某位取反 1 封装总线和外设基地址 在编程上为了方便理解和记忆 xff0c 我们把
  • STM32——串口通信及实验

    目录 1 按照数据传送的方向 xff0c 分为 xff1a 2 按照通信方式 xff0c 分为 xff1a STM32串口通信基础 串口通信过程 UART xff08 USART xff09 框图 串口通信实验 编程要点 代码分析 通信接口
  • 【STM32】DMA原理,配置步骤超详细,一文搞懂DMA

    目录 DMA xff08 Direct Memory Access xff09 简介 DMA传输方式 DMA功能框图 DMA请求映像 DMA1控制器 DMA2控制器 通道 仲裁器 DMA主要特性 DMA处理 DMA数据配置 从哪里来到哪里去
  • [STM32学习]——一文搞懂I2C总线

    目录 I2C总线的概念 I2C最重要的功能包括 xff1a I2C的物理层 I2C主要特点 xff1a I2C的高阻态 I2C物理层总结 xff1a I2C的协议层 初始 xff08 空闲 xff09 状态 开始信号 xff1a 停止信号

随机推荐

  • STM32——ADC采集

    目录 ADC简介 ADC主要特征 ADC功能框图 ADC引脚 电压输入范围 通道选择 单次转换模式 连续转换模式 转换顺序 规则序列 注入序列 触发源 转换时间 中断 转换结束中断 模拟看门狗中断 DMA请求 代码讲解 宏定义 xff1a
  • STM32——MPU6050内部DMP固件移植,获取欧拉角

    MPU6050模块是什么东西 xff0c 我这里就不再赘述了 xff0c 围绕它可以做很多应用 xff0c 比如四翼飞行器 平衡车等等 当然要完全使用这块模块不是那么容易的 解释说明 其实我们主要是想通过MPU6050得到欧拉角和四元数 x
  • 树莓派---设置WIFI自动连接或者取消自动连接

    树莓派 设置WIFI自动连接或者取消自动连接 注意一 方案二 设置WIFI自动连接 2 1 远程连接 若树莓派本地操作则跳过 2 2 修改WIFI自动连接配置文件 三 取消WIFI自动连接 注意 系统 xff1a Ubuntu16 04 树
  • ROS——服务通信

    服务通信是ROS中一种及其常用的通信模式 xff0c 服务通信是基于请求响应模式的 xff0c 是一种应答机制 xff0c 也即一个节点A向另一个节点B发送请求 xff0c B接收处理请求并产生响应返回给A xff0c 比如如下场景 xff
  • ROS中的头文件和源文件

    目录 自定义头文件的调用 头文件 可执行文件 配置文件 自定义源文件的调用 头文件 源文件 可执行文件 配置文件 头文件与源文件相关配置 可执行文件配置 本文主要介绍ROS的C 43 43 实现 xff0c 如何使用头文件和源文件的方式封装
  • 一文搞懂——软件模拟SPI

    关于stm32通信协议 xff1a 软件模拟SPI 软件模拟I2C的总结 xff08 fishing 8 xff09 To be a fisher的博客 CSDN博客 stm32 软件spi 发现一篇写的软件模拟SPI的比较容易理解的博客
  • RT-Thread启动流程

    芯片启动到main函数之前的运行过程 不论是否有RTOS xff0c 芯片的启动过程是一致的 xff0c 均是要从复位向量处取得上电复位后要执行的第一个语句 xff0c 接下来进行系统时钟初始化等工作 xff0c 随后跳转到main处 寻找
  • FreeRTOS信号量

    前面介绍过 xff0c 队列 xff08 queue xff09 可以用于传输数据 xff1a 在任务之间 xff0c 任务和中断之间 消息队列用于传输多个数据 xff0c 但是有时候我们只需要传递一个状态 xff0c 这个状态值需要用一个
  • FreeRTOS优先级翻转

    优先级翻转 优先级翻转 xff1a 高优先级的任务反而慢执行 xff0c 低优先级的任务反而优先执行 优先级翻转在抢占式内核中是非常常见的 xff0c 但是在实时操作系统中是不允许出现优先级翻转的 xff0c 因为优先级翻转会破坏任务的预期
  • Git学习

    目录 初始化一个Git仓库 添加文件到Git仓库 xff0c 分为两步 小结 查看状态和文件的修改信息 小结 版本回退 git log查看修改和提交的日志信息 版本回退这里可以使用命令 小结 工作区和暂存区 小结 管理修改 小结 撤销修改
  • 数据的表示和存储——

    目录 浮点数的编码表示 浮点数类型 编辑 浮点数的表示 xff08 1 xff09 浮点数 xff08 Float Point xff09 的表示范围 xff08 2 xff09 规格化数形式 xff08 3 xff09 IEEE 754标
  • GDB Debug

    GDB调试教程 xff1a 1小时玩转Linux gdb命令 biancheng net 有一部分要付费 GDB使用详解 知乎 zhihu com GDB调试入门指南 知乎 zhihu com TUI Debugging with GDB
  • python字符串前加 f 的含义

    字符串前加 f 的含义 先看例子用法总结 副标题 xff1a f string 概述 官方文档 xff1a 点击这里 如果你今天将就而选择参考了我的文档 xff0c 总有一天你还是会去阅读官方文档 先看例子 list span class
  • px4的CMakelists.txt阅读

    Copyright c 2017 PX4 Development Team All rights reserved Redistribution and use in source and binary forms with or with
  • “sudo: aptitude:找不到命令”解决办法

    在Ubuntu上安装seagull先决条件 xff0c 输入如下代码 xff1a zk 64 zk virtual laptop sudo aptitude install build essential curl git libglib2
  • 图优化

    简介 图优化本质上是一个优化问题 xff0c 所以我们先来看优化问题是什么 优化问题有三个最重要的因素 xff1a 目标函数 优化变量 优化约束 一个简单的优化问题可以描述如下 其中x为优化变量 xff0c 而F x 为优化函数 此问题称为
  • Docker容器无法连接主机显示器

    当docker容器无法连接主机显示器时会报各种错误 xff0c 都会包含 couldn 39 t connect to display 34 unix 1 34 此时需要 xff0c 首先在主机终端输入 xhost 43 打开主机显示器连接
  • c++ setprecision用法详解

    c 43 43 setprecision用法详解 可以通过使用 setprecision 操作符来控制显示浮点数值的有效数字的数量 span class token macro property span class token direc
  • VScode+Remote-SSH 实现远程连接LINUX

    目录 VIM编辑器SSH 43 SFPT方法VScode 43 Remote SSH插件配置方法安装Remote SSH插件连接服务器免密登录效果展示 VIM编辑器 从VIM编辑器说起 xff0c 总所周知 xff0c vim编辑器是最难用
  • ubuntu docker配置cuda+anaconda+vscode+tensorflow环境的镜像

    ubuntu docker配置cuda 43 anaconda 43 vscode 43 tensorflow环境 docker 安装docker基本操作查看镜像删除镜像官方镜像 容器基本操作从镜像启动容器列出所有容器终止容器启动容器删除容