docker 配置 anaconda + jupyter notebook 纪要
首先,pull官方的镜像,名字叫:continuumio/anaconda3
首先的首先,如果默认还是需要sudo运行docker命令,可以考虑把当前用户加入到docker组(usermod -aG docker $USER),然后重新登录一下就好了(备注:如果也在用tmux操作,需要重新开一个session,不然fork出来的user login总是保留着旧的状态。)
其次,这时候其实建议写一个dockerfile,不过因为偷懒,且不是永久性质的部署,所以选择了直接运行image。
目前用的命令是直接运行bash,然后再attach进去手动运行jupyter。docker run 对应的指令如下:
docker run -it -p 127.0.0.1:9999:8888 -v /home/user/container-notebook:/opt/notebook --name notebook continuumio/anaconda3
怕自己以后忘记这里说明一下,-p是端口映射,把容器内的8888端口映射到本机的9999。注意:如果不加127.0.0.1默认是bind 0.0.0.0
以及,-v 是目录(volume)映射,把本机的container-notebook挂到了容器内的/opt/notebook
--name 是方便以后操作加上的,不加的话会随机生成一个名字,不好认。
至于command,因为默认会运行bash,所以image name后面就省略command部分了。
至于为什么需要先进shell,主要是为了设置jupyter的密码。因为不设置密码的话登录要用url token,太麻烦了,而用参数明文指定密码也不太好,只好手动操作了。
设置密码的指令很简单:jupyter notebook password 即可。注意:密码保存在~/.jupyter下的一个json config里面,非明文,仅保存了hash值。如果忘了只能手动再设置一遍。
之后在shell里面运行notebook的命令也很简单:jupyter notebook --notebook-dir=/opt/notebook --ip=* --no-browser --allow-root 即可。
这里也说明一下相关的细节:因为官方的docker image只有root用户,所以不加allow-root运行不了。其他参数都好理解。
最后,因为运行了上面这条jupyter的指令后,stdin就被占用了,这时候ctrl+c不是退出container,而是终止jupyter。官方的默认退出container的操作是快捷键ctrl+p然后ctrl+q,这样可以保持容器内的前台任务继续运行。
其他补充
因为google了很多相关的东西,虽然不一定跟部署jupyter有关,不过还是有用也值得记录一下的。
1. 停止 docker container 一般优先用stop,kill是发送SIGKILL强制退出,没有提前发送SIGTERM
2. 想要在docker里面用tmux的前提是有一个可以安装tmux的环境(比如基于某个发行版的docker image)
3. docker pull下来的image默认存储在/var/lib/docker
4. docker run 的时候加上-d参数可以把stdout的输出转移到后台,需要查看的话用docker container logs
ref:
官方镜像(内附简要使用说明):https://hub.docker.com/r/continuumio/anaconda3
https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
docker kill 和 stop 有什么区别》http://dockone.io/question/158
关于Docker目录挂载的总结 - iVictor - 博客园》https://www.cnblogs.com/ivictor/p/4834864.html
https://stackoverflow.com/questions/19234831/where-are-docker-images-stored-on-the-host-machine
后台运行 | Docker 从入门到实践》https://vuepress.mirror.docker-practice.com/container/daemon.html
端口映射:https://docs.docker.com/config/containers/container-networking/
https://docs.docker.com/engine/reference/commandline/attach/
目录挂载:https://docs.docker.com/storage/volumes/
docker 配置 anaconda + jupyter notebook 纪要的更多相关文章
- Windows+anaconda+jupyter notebook+R+python3.6
Windows+anaconda+jupyter notebook+R+python3.6 环境配置 1. 设置国内清华大学镜像 打开 anaconda prompt,输入命令 conda confi ...
- anaconda jupyter notebook 启动方法
介绍 anaconda jupyter notebook是一种基于浏览器的python编译环境.(大概) 使用时可能因为浏览器缓存造成问题. 但是很方便. 启动方法 anaconda navigato ...
- anaconda+jupyter notebook 安装配置
安装Anaconda 从清华大学开源软件镜像站选择合适自己的版本 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda ...
- 配置tensorflow环境(anaconda+jupyter notebook)
很早之前,tensorflow环境之前我也曾装过,但是用的不是很舒服,很多问题都不明所以然.今天想要系统地学习一下tensorflow,于是又重新搭建了一遍,这次还是踩了不少坑.特此写下此文,供有兴趣 ...
- Centos7安装 Anaconda + jupyter notebook
一.安装Anaconda 1 下载Anaconda安装脚本 为了避免漫长的等待,镜像源选择国内的清华镜像源,镜像源地址:https://mirrors.tuna.tsinghua.edu.cn/ana ...
- anaconda jupyter notebook修改默认文件路径
使用anaconda附带的jupyter,想要改变默认运行文件路径,直接在cmd中输入jupyter notebook会提示:jupyter不是内部命令! 可能是anaconda代理了他所安装的软件, ...
- 改 Anaconda Jupyter Notebook 开发文件保存目录
1.打开cmd,输入命令找到配置文件路径 jupyter notebook --generate-config 2.打开 jupyter_notebook_config.py 修改配置 c.Noteb ...
- 配置远程jupyter notebook
在远程服务器上启动jupyter notebook,然后在本地进行访问.本文使用最简单的一种方法,无需设置密码,所以这种方法也是最不安全的方法,慎用. 1. 在远程服务器上生成jupyter note ...
- 环境配置 | 安装Jupyter Notebook及jupyter_contrib_nbextensions库实现代码自动补全
一.Jupyter Notebook的安装与启动 安装Jupyter Notebook pip3 install jupyter 启动 jupyter notebook 输入命令后会自动弹出浏览器窗口 ...
- 全真教程:Windows环境Jupyter Notebook安装、运行和工作文件夹配置
全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 @ 目录 全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 一.Jupyt ...
随机推荐
- Pyodide读取CSV、EXCEL
from pyodide.http import pyfetch, open_url pyfetch(url="/your/URL/goes/here", method=" ...
- UI动画 - CATransaction
前言 1 - CAAnimation 并不是一个单纯的实现动画的框架,它原本叫 Layer Kit.管理着树状结构的图层数据,并快速组合这些图层,最终构成了一切可视化的基础 2 - 在构建可视化,也就 ...
- openwrt 配置 单网卡多IP
config interface 'wan0' option ifname 'eth1' option proto 'static' option nat '1' option mtu '1500' ...
- VS code 安装后gdb调试无法显示STL内容的问题
bar {...} std::_Vector_base<TSample<MyTraits>, std::allocator<TSample<MyTraits> &g ...
- c基础语法-常用关键字
变量 在计算机中,整数是以补码形式存放的.所以如果整数的最高位是1,有符号数的话就是负数:如果是无符号数,则都表示正数 整形 int ->32 -2^31~2^31无符号整形 unsigned ...
- 爬qqhentai
import requestsfrom bs4 import BeautifulSoupimport timeimport reimport osimport randomagentlist = [& ...
- egg开发系列--模板语法
在这里列一下 nunjucks 常用的模板内容 首先需要在plugin.js 当中引入 exports.nunjucks = { enable: true, package: 'egg-view-nu ...
- Codeforces Round #694 (Div. 1) - B. Strange Definition
数论 Problem - B - Codeforces 题意 给定 \(n\;(1<=n<=3*10^5)\) 个数 \(a[i]\), \(1<=a[i]<=10^6\) 把 ...
- S-HR查询用户组织范围
SELECT org.FNumber FNumber,org.FName_L2 orgName FROM T_PM_OrgRange orgRange LEFT JOIN T_ORG_admin or ...
- Java数组之冒泡排序【重点】
冒泡排序 冒泡排序是最为出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较. 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2). ...