少女祈祷中...

拉取镜像

  • 直接拉取镜像

    1
    docker pull ubuntu
  • 或者是从本地导入镜像

    1
    docker load --input 路径/文件名.tar

启动容器

  • 注意要设置好端口,不然后面设置会很麻烦。要设置GPU的话也是一样,后面再弄会很麻烦。要么弄成个镜像再启动一遍,要么停止docker然后修改文件,具体应该可以度娘,这里就不再赘述。IMAGE ID可执行docker images得到,也就是镜像的ID。包括shm的配置也是,如果没有修改配置文件的话,默认为64M,这显然是不够用的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    docker run --name 自己想要的名字 -it -p 本地端口:容器端口 IMAGE ID

    // 也可以不指定本地端口,让系统选一个空闲的端口
    docker run --name 自己想要的名字 -it -p 容器端口 IMAGE ID

    // 设置全部GPU
    docker run --gpus all --name 自己想要的名字 -it -p 容器端口 IMAGE ID

    // 设置使用主机的东西
    docker run --gpus all --ipc=host --name wu1015 -it -p 本机端口:容器端口 ID
  • 启动容器后可以执行以下命令查看开放映射的端口

    1
    docker ps -a

配置环境

配置Python

  • 在换源后直接执行安装。

    1
    apt install python3
  • 如果没有pip的话也可以这样安装,但请注意不要直接安装pip,而是应该安装python3-pip。否则在安装后执行pip install下载任务时会回报环境问题。

  • 环境问题基本没有太好的解决方法,要么忽视,要么使用虚拟环境,要么使用pipx。虚拟环境的方法有些麻烦,请自行查阅参考文章。一般认为,忽视都不算是什么好方法,毕竟后面可能会出现相应的环境冲突。所以基本都会使用pipx。但这肯定是不如原来的pip,所以还是选择删掉重下比较好。(可以通过apt来安装部分包,但因为大部分都不行,所以不进行考虑)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // 忽视_方法一
    pip install package --break-system-packages

    // 忽视_方法二,请改为你的路径
    sudo mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.old

    // 使用pipx
    apt install pipx

    pipx install package
  • 当然你也可以选择删掉重下解决。

    1
    2
    3
    4
    5
    6
    7
    8
    // 删除之前安装的,删掉后再执行下pip和python3看看还在不在
    apt remove python3
    apt remove pip
    apt autoremove

    // 安装
    apt install python3
    apt install python3-pip

后记

  • 还是建议使用python的环境也就是venv。毕竟PEP 668规定了不允许直接用系统的python混用apt和pip安装。

    1
    2
    python3 -m venv .venv
    source .venv/bin/activate
  • 这个会创建一个小的虚拟环境。

配置其他基本环境

  • 安装vim,git,curl,wget,7z,screen

    1
    apt install vim git curl wget p7zip-full screen
  • 复制文件,那个id其实也能用名称,也就是创建容器时定义(或者后面改了的)的名称。(其实都打算配置jupyter了,为啥不先配那个然后直接浏览器上传文件呢)

    1
    docker cp 本地文件路径 CONTAINER ID:容器文件路径

配置jupyter

  • 安装配置jupyter

    1
    pip install jupyter
  • 生成默认配置文件

    1
    jupyter notebook --generate-config
  • 修改配置文件。因为生成的配置文件基本都是注释,完全可以直接添加。

    1
    2
    3
    4
    5
    6
    7
    8
    vim /root/.jupyter/jupyter_notebook_config.py

    改为一下这些
    c.NotebookApp.allow_remote_access = True # 允许远程访问
    c.NotebookApp.ip='0.0.0.0' # 自动获取服务器ip
    c.NotebookApp.allow_root =True # 打开root权限启动
    c.NotebookApp.open_browser = False # 服务端禁止自动打开浏览器
    c.NotebookApp.port = 2222 # 创建docker时候配置的端口号
  • 设置密码

    1
    jupyter notebook password
  • 启动jupyter

    1
    jupyter notebook
  • 通过screen启动,名字爱取啥取啥

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    启动一个窗口
    screen -S 名字

    // 启动jupyter
    jupyter notebook

    // 输入Ctrl a d退出窗口并保留运行

    // 查询窗口
    screen -ls

    // 进入已开启的窗口
    screen -r 名字

jupyter使用需要注意的

  • 其实colab和这个都是一样的逻辑,只需要知道其中一个咋用,另一个也就知道了。

  • 如果需要执行Linux命令,就在前面加一个!,后面正常接命令。请注意是英文的感叹号。例子如下。

    1
    !ls
  • 如果要切换目录,那么!cd 目录就不会生效了,需要使用%。例子如下。

    1
    %cd 目录

参考文章