拉取镜像
直接拉取镜像
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
10docker 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
2python3 -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
8vim /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 目录