zoukankan      html  css  js  c++  java
  • 服务器Docker-Compose 安装 Anaconda

    前置:Docker、Docker-Compose的安装以及相关使用

    一、docker-compose.yml

    version: '3.1'
    services:
      anaconda:
        restart: always
        image: continuumio/anaconda3:2021.04
        container_name: anaconda
        ports:
          - 8888:8888
        command: /bin/bash -c "mkdir -p /mnt/data && mkdir -p /mnt/app && chmod +x /mnt/app/entrypoint.sh && /mnt/app/entrypoint.sh > /mnt/app/log.log"
        volumes:
          - ./app:/mnt/app
          - ./data:/mnt/data
    
    

    二、文件准备

    1. 在yml文件同级目录下创建目录app

    mkdir ./app
    

    2. 在app目录下创建几个文件

    entrypoint.sh

    #!/bin/bash
    echo y|conda install -c conda-forge jupyterlab
    echo y|jupyter notebook --generate-config
    sha1=`python3 /mnt/app/setPwd.py`
    echo $sha1
    echo "c.NotebookApp.ip='*'                          #绑定所有地址,即所有IP 地址都可以访问" >> /root/.jupyter/jupyter_notebook_config.py
    echo "c.NotebookApp.password = u'$sha1'" >> /root/.jupyter/jupyter_notebook_config.py
    echo "c.NotebookApp.open_browser = False            #启动后是否在浏览器中自动打开" >> /root/.jupyter/jupyter_notebook_config.py
    echo "c.NotebookApp.port =8888                      #指定一个访问端口8100,默认8888" >> /root/.jupyter/jupyter_notebook_config.py
    echo "c.NotebookApp.allow_remote = True     #将远程访问设置成True" >> /root/.jupyter/jupyter_notebook_config.py
    echo "c.NotebookApp.notebook_dir = '/mnt/data'   #设置项目路径" >> /root/.jupyter/jupyter_notebook_config.py
    pip --default-timeout=100 install -U jupyter_contrib_nbextensions
    jupyter contrib nbextension install --user
    pip --default-timeout=100 install -U jupyter_nbextensions_configurator
    jupyter nbextensions_configurator enable --user
    chmod +x /mnt/app/install.sh
    /mnt/app/install.sh &
    # 安装字体
    # chmod +x /mnt/app/cpfont.sh 
    # /mnt/app/cpfont.sh &
    jupyter notebook --allow-root
    

    setPwd.py

    from notebook.auth import passwd
    # 密码:12345
    print(passwd("12345","sha1"))
    

    install.sh

    自定义安装python包

    #!/bin/bash
    for line in `cat /mnt/app/environment.txt`
    do
     pip install $line -i https://mirrors.aliyun.com/pypi/simple/
    done
    

    environment.txt

    包名与版本

    tensorflow==2.4.0
    keras==2.4.3
    librosa
    numba==0.51.2
    

    cpfont.sh

    设置matplotlib中文字体

    #!/bin/bash
    cp /mnt/app/fonts/* /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf
    rm -rf /root/.cache/matplotlib
    echo "font.family         : sans-serif" >> /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
    echo "font.sans-serif     : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif" >> /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
    echo "axes.unicode_minus  : False" >> /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
    

    fonts目录

    存放字体文件

    app目录结构

    三、启动docker

    docker-compose up -d
    

    启动时比较慢,多等一会,刷新后进入输入密码的界面

    输入密码后进入主界面

    自此,大功告成,完结撒花

    四、设置代码提示

    点击Nbextensions选项卡勾选Hinterland,使用Jupyter敲几行代码试试,终于摆脱每次按tab键的烦恼了

  • 相关阅读:
    mysql中字符集和排序规则说明
    结束进程的批处理文件
    内有干货!2个人3个月怎样从零完毕一款社区App《林卡》
    九度OJ 1006 ZOJ问题 (这题測试数据有问题)
    简易版的堆的写法
    hbase
    JNDI配置c3p0连接池
    [effictive c++] 条款04 确定对象被使用前已被初始化
    第九十五题(推断一字符串是不是对称的)
    OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检測的測试代码
  • 原文地址:https://www.cnblogs.com/zzxaaas/p/14769516.html
Copyright © 2011-2022 走看看