美文网首页
用docker启动一个jupyter notebook

用docker启动一个jupyter notebook

作者: 程序喵华仔 | 来源:发表于2017-06-06 19:31 被阅读0次

    在docker中安装jupyter notebook

    安装docker:略

    sudo docker run -it --name notebook --rm -v /home/qhduan/:/mnt -v /etc/localtime:/etc/localtime:ro ubuntu:16.04
    

    -it 是 -i -t 的缩写
    -t 模拟终端模式
    -i 接受用户输入
    --rm 运行之后删除这个container
    -v /home/qhduan/:/mnt 挂载 /home/qhudan的目录到虚拟机的/mnt目录
    -v /etc/localtime:/etc/localtime:ro 把主机的目录:ro的只读(readonly)挂载到虚拟机目录

    # 更新apt并装pip
    apt update
    apt install python3-pip vim locales fonts-wqy*
    locale-gen en_US.UTF-8
    # 装jupyter和常用包
    pip3 install jupyter notebook tqdm requests pandas lxml matplotlib seaborn scikit-learn numpy scipy tensorflow keras h5py pillow pip --upgrade
    pip3 install xlrd xlwt xlsxwriter tushare --upgrade
    # 加一个用户
    adduser notebook
    # 进入用户
    su notebook
    # 生成jupyter配置文件
    jupyter notebook --generate-config
    # 修改jupyter配置文件
    vim ~/.jupyter/jupyter_notebook_config.py
    
    # 加入下面内容到最下面
    
    # 不自动中启动时打开浏览器
    c.NotebookApp.open_browser = False
    # 绑定ip
    c.NotebookApp.ip = '*'
    # 绑定端口
    c.NotebookApp.port = 8888
    # 默认启动目录
    c.NotebookApp.notebook_dir = '/mnt'
    
    # 然后保存退出
    
    # 设置jupyter密码
    jupyter notebook password
    
    # 开另一个终端(非当前的docker的)
    # 把当前名为notebook的docker container提交到一个名为notebook的image
    # 其中 --change "ENV LANG=en_US.UTF-8"是设置一个语言的环境变量
    # 第一个notebook是当前的container name,是我们之前run的时候--name参数设置的
    # 第二个notebook是要提交到的image name
    sudo docker commit --change "ENV LANG=en_US.UTF-8" notebook notebook
    
    # 然后可以关闭docker的终端了
    
    

    运行这个镜像

    其中:

    -p 8888:8888 是暴露虚拟机的8888端口主机的8888端口
    notebook su notebook -c 'jupyter notebook'
    这句话第一个notebook是image name,是我们刚刚commit出来的。
    第二个notebook是虚拟机中的用户名,是我们刚才adduser的。
    su notebook -c 'jupyter notebook' 的意思是以notebook用户执行 'jupyter notebook'这条命令
    -d 是以服务的方式运行(daemon)

    这条命令不同于上一条命令

    sudo docker run -d --name notebook -p 8888:8888 -v /home/qhduan/:/mnt -v /etc/localtime:/etc/localtime:ro notebook su notebook -c 'jupyter notebook'
    

    然后就可以打开本地的8888端口

    安装软件

    
    sudo docker stop notebook
    
    sudo docker rm notebook
    
    sudo docker run -it --name notebook --rm -v /home/qhduan/:/mnt -v /etc/localtime:/etc/localtime:ro notebook
    
    # 另一个terminal下
    sudo docker commit notebook notebook
    
    

    然后再起动

    sudo docker run -d --name notebook -p 8888:8888 -v /home/qhduan/:/mnt -v /etc/localtime:/etc/localtime:ro notebook su notebook -c 'jupyter notebook'
    

    相关文章

      网友评论

          本文标题:用docker启动一个jupyter notebook

          本文链接:https://www.haomeiwen.com/subject/nijnfxtx.html