安装docker教程,我跟的是:
https://blog.csdn.net/qq_51443603/article/details/130964586
这个可以参考:
https://www.zhihu.com/question/484035804/answer/2803488854
docker就类似vmware
安装docker:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
docker --version
运行docker:
在服务器上的操作:
#安装并运行默认的ubuntu镜像,并用bash打开,一定要加上--gpus=all才和外部的nvidia-smi驱动连接起来,一定要加上--shm-size 8g 否则共享空间不够大workers=8跑不起来:
#其实就相当于VMware,开虚拟机时给虚拟机分配多大的内存+显卡+cpu个数
sudo docker run --shm-size 8g --memory 500G --cpus=20 --gpus=all -it ubuntu /bin/bash
#sudo docker run --shm-size 8g --memory 500G --cpus=20 --gpus=all -it qxr bash
退出虚拟机:
exit
接着补上,保存到磁盘里:
sudo docker commit 刚关掉的ubuntuID qxr
其他人的操作:
创建docker:
sudo docker run -d --name docker_qxr --shm-size 8g --memory 500G --cpus=20 --gpus=all ubuntu:22.04 /bin/bash -c "tail -f /var/log/alternatives.log"
进入docker:
sudo docker exec -it docker_qxr bash
停止docker:500
sudo docker stop docker_qxr
删除docker:
sudo docker remove docker_qxr
拷贝文件
sudo docker cp Anaconda3-2023.09-0-Linux-x86_64.sh docker_qxr:/root
在自己电脑上的操作:
#安装并运行默认的ubuntu镜像,并用bash打开:
sudo docker run -it ubuntu /bin/bash
#进去后一无所有,只有一个/root 可以用
wget 也不好用,得用离线安装conda
去官网下conda的.sh后,就放进自己的docker去:
下载conda的方式:
https://blog.51cto.com/u_15389271/6188314
然后在外部linux移动到下载的路径后,
docker当前正在打开的ubuntu不能关闭!虚拟机别关闭,此时再开一个新的终端复制进去:
docker cp 本地文件路径 自己的dockerID:/path
例如:
docker cp Anaconda3-5.3.1-Linux-x86_64.sh a0273295bafa:/root
再回到自己的docker中去bash它。
当然其中也会报错unzip2命令未找到。此时需要安装:
apt-get update
apt-get install bzip2
把anaconda3文件删掉后再bash一次安装文件即可完成conda安装。
把下面这句放到bash里(如果此时vim没用,那就再apt-get update后安装)
export PATH="/home/qxr/anaconda3/bin:$PATH"
刷新环境
source ~/.bashrc
检查是否成功安装:
conda -V
多个终端打开当前容器正在运行的images
# 显示当前正在运行的docker进程
sudo docker ps [-a]
sudo docker exec -it thisRuningID /bin/bash
如果你的容器是以交互式的方式运行,但你希望在后台保持某些任务运行,
可以通过以下步骤将容器放入后台运行:
1. **在容器内执行任务:** 在容器中运行你的模型训练或其他任务。确保任务在后台运行,
或者使用类似 `nohup` 的方式让任务不受终端关闭的影响。
nohup your_training_command &
2. **将容器放入后台:** 在原始终端中,
使用以下组合键将容器放入后台:
`Ctrl + P, Ctrl + Q`(大写!按顺序!) 。
3. **回到容器:** 当你需要再次进入容器时,可以使用 `docker attach` 或者 `docker exec` 命令。
docker attach container_now_ID
或者
docker exec -it container_name /bin/bash
注意:`docker attach` 会直接连接到容器的主进程,而 `docker exec` 允许你在容器中启动一个新的进程。
这样,你可以在不中断模型训练的情况下退出原始终端。
当你再次需要进入容器时,可以使用 `docker attach` 或 `docker exec`
进入容器,继续操作。
bug收集:
#经常遇到没法安装某个包,例如刚创建虚拟机后马上安装vim是提示找不到包的,此时需要:
apt update
grep也是,net-tools也是。。。。。感觉虚拟机经常找不到对应的包。
exit后,再次打开找不到之前的容器了:
sudo docker ps -a
用:
docker commit CONTAINER_ID NEW_IMAGE_NAME
例如sudo docker commit a0273295bafa qxr
就把这个docker保存到本地了:
docker images
可以看到对应的容器
之后可以用以下命令来运行对应的docker:
docker run -it ID /bin/bash
或者docker run -it Name /bin/bash
docker中的vim中文乱码,参考:
https://blog.csdn.net/weixin_67314352/article/details/131526601