安装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