浅谈Docker运行Tensorboard和jupyter的方法

网上找了很多方法都是jupyter 运行正常但不知道如何打开Tensorboard。折腾了很久,实验很多中方法最终找到了一个正确的方式。

首先创建docker volumes

docker volume create --name notebooks
docker volume create --name logs 

注: 这个是docker创建的volume 用来供jupyter 运行的notebook 和log 保存的卷信息。

然后在本机创建两个运来实际挂载notebooks 和logs的目录

注:目录根据自己情况创建

sudo mkdir /home/dyufei/docker/notebooks
sudo mkdir /home/dyufei/docker/logs 

Docker 运行jupyter(创建jupyter容器)

docker run \
--name jupyter \
-d \
-v notebooks:/home/dyufei/docker/notebooks \
-v logs:/home/dyufei/docker/logs \
-e "PASSWORD=abc123 \
-p 8888:8888 \
tensorflow/tensorflow

注:

  1. --name 为创建容器名 即:jupyter
  2. -v 将本地的/home/dyufei/docker/logs目录挂载到docker的logs volume下
  3. -e "PASSWORD=abc123" 是jupyter启动登录的密码,密码自己设个喜欢的即可
  4. -p 是端口映射

Docker 运行jupyter(创建tensorboard容器)

docker run \
 --name tensorboard \
 -d \
 -v logs:/home/dyufei/docker/logs \
 -e "PASSWORD=abc123" \
 -p 6006:6006 \
 tensorflow/tensorflow:latest \
 tensorboard --logdir /home/dyufei/docker/logs

大功告成!这样就可以在浏览器中打开了,

http://localhost:8888/
http://localhost:6006/

试试看

Tensorboard 和 jupyter 运行和停止

上面的命令创建并运行了 tnsorboard 和 jupyter两个容器,之后就可以直接启动和停止容器的方式来运行和停止Tensorboard 和 jupyter。

1)停止

docker stop jupyter
docker stop tensorboard

2)启动

docker start jupyter
docker start tensorboard

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈Docker运行Tensorboard和jupyter的方法

    网上找了很多方法都是jupyter 运行正常但不知道如何打开Tensorboard.折腾了很久,实验很多中方法最终找到了一个正确的方式. 首先创建docker volumes docker volume create --name notebooks docker volume create --name logs 注: 这个是docker创建的volume 用来供jupyter 运行的notebook 和log 保存的卷信息. 然后在本机创建两个运来实际挂载notebooks 和logs的目录

  • 浅谈docker运行nginx为什么要使用daemon off

    很开心啊,遇到这个问题,就要讲讲docker容器的进程原理了,基本上了解过docker的人都清楚docker的几个隔离方式,那么进程同样是进行隔离. 问题 1.docker容器跑着为啥会挂掉? docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker 容器pid挂了,那么docker容器便会直接退出. 2.docker run的时候把command最为容器内部命令,如果你使用nginx,那么nginx程序将后台运行,这个时候ng

  • 浅谈docker学习之docker数据卷(volume)

    1.什么是数据卷volume 为了了解什么是Docker Volume,首先我们需要明确Docker内的文件系统是如何工作的.Docker镜像被存储在一系列的只读层.当我们开启一个容器,Docker读取只读镜像并添加一个读写层在顶部.如果正在运行的容器修改了现有的文件,该文件将被拷贝出底层的只读层到最顶层的读写层.在读写层中的旧版本文件隐藏于该文件之下,但并没有被不破坏 - 它仍然存在于镜像以下.当Docker的容器被删除,然后重新启动镜像时,将开启一个没有任何更改的新的容器 - 这些更改会丢失

  • 浅谈docker compose书写规则

    本文对集群部署相关的一概不做介绍 版本约束 Docker Engine >= 19.03 Docker Compose >=3.8 结构介绍 docker-compose.yaml 文件结构主要由 version # docker compose版本 networks # 网络,用于docker容器内部通讯 x-{name} # 模版命名规则 以x-开头 用于复用 volumes # 挂载卷 services # 服务模块,内部定义容器信息 其内部参数相当于docker run时的参数 模块介

  • 浅谈docker --privileged=true参数作用

    大约在0.6版,privileged被引入docker. 使用该参数,container内的root拥有真正的root权限. 否则,container内的root只是外部的一个普通用户权限. privileged启动的容器,可以看到很多host上的设备,并且可以执行mount. 甚至允许你在docker容器中启动docker容器. $ docker help run ... --privileged=false Give extended privileges to this container

  • 浅谈Docker如何自定义host文件

    目录 一.命令 二.docker-compose.yml 三.dockerfile 四.直接修改 五.修改镜像 总结 1.问:我们的真正开发的时候数据库都是部署在内网的,而我们程序连接数据库的时候,需要指定内网的地址.但是有时候我们需要迁移环境,那么我们的后端代码就得跟着进行修改,有没有一种好的办法,不让我们修改代码吗? 答:可以肯定的说是有的,那就是在代码中指定的不是IP地址,而是域名.我们只需要配置域名和IP地址建立映射关系,所有的项目都无需更改代码就可以达到目的. 2.问:正式环境一般都是

  • 浅谈django model的get和filter方法的区别(必看篇)

    django的get和filter方法是django model常用到的,搞清楚两者的区别非常重要. 为了说明它们两者的区别定义2个models class Student(models.Model): name = models.CharField('姓名', max_length=20, default='') age = models.CharField('年龄', max_length=20, default='') class Book(models.Model): student =

  • 浅谈pycharm出现卡顿的解决方法

    使用pycharm时常出现   the IDE is running low on memory 的问题,表示pycharm这款IDE使用内存不足,需要在系统内存充足的情况下扩充IDE memory. 首先,打开File -> Appearance ->Windows Options -> 选中show memmory indicator -> OK 右下角会出现  左边数字为已使用IDE memory,右边数字为总共的IDE memory,初始为750M,如果pycharm出现卡

  • 浅谈jQuery animate easing的具体使用方法(推荐)

    从jQuery API 文档中可以知道,jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数: •properties:一组包含作为动画属性和终值的样式属性和及其值的集合 •duration(可选):动画执行时间,其值可以是三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)

  • 浅谈jsp的C标签一般使用方法以及js接收servlet中的对象及对象数组

    由于现流行的javaWeb框架提倡前后端分离,比如在SpringMvc中已经很少写servlet的一些东西:目前 前端jsp中大多是一些纯html和js,很少用到jstl的一堆东西,后端也仅仅处理一些前端的post.get请求或页面跳转,无须以往繁琐的xml路径映射和filter过滤. 不过有时也会用到servlet作用域中的一些东西,比如某个固定的值.上下文路径等等~,不过这些东西大多数也仅限于取值而不是设置值(或对象),所以sun给了一个非常简洁的取值方式:C标签! 下面将简述下C标签的一些

随机推荐