home/wyc/software/anconda3/lib/libstdc++.so.6.0.28,试着查看一下这个文件,0.28意思是该文件下版本最大支持到GLIBCXX_3.4.28,那么自然GLIBCXX_3.4.26也包含在内。用下面的命令查看。
strings /home/wyc/software/anconda3/lib/libstdc++.so.6.0.28 | grep GLIBCXX
step3:如果本机没有符合条件的,可以安装
apt install libstdc++6
step4:如果docker环境中有,则替换,如下
sudo cp /home/wyc/software/anconda3/lib/libstdc++.so.6.0.28 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
step 5:如下看看是否成功
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
step6 保存成新的docker镜像,不然下次会丢失。
参考如下:
关于“有目录挂载/无目录挂载”容器保存为镜像
无容器目录挂载
1、也就是说宿主机未与容器进行路径映射,故我们可以直接使用指令:docker commit 容器名称/容器ID 镜像名:标签号,把容器保存为镜像;(其中镜像名和标签号是我们随机取的,新镜像名以及我们的标签号!)
2、我们在不能判断容器与宿主机存在目录挂载/路径映射之前,我们可以使用指令:docker inspect --format=‘{{.Mounts}}’ 容器名(其中,这个容器名为我们要测试的容器名)
有容器目录挂载
1、首先,我们存在容器目录挂载的容器在保存为新镜像时,里面的数据全部会被抛弃,不会保存在新镜像中,故我们不能像上面那样直接使用指令进行保存为镜像;
2、解决方法:我们可以先把与容器A进行了目录挂载/路径映射的宿主机相应目录下的文件拷贝到另外的一个备份文件夹,然后再把容器A保存为新镜像后,使用新镜像创建容器B并进行目录挂载/路径映射时,映射路径改为宿主机上的备份文件夹,这样以来,我们使用新镜像创建的容器B中就能有原来宿主机原路径下的数据!
3、指令如下:
cp -rf /usr/local/project/ /usr/local/baseproject
(其中/usr/local/project为原目录,/usr/local/baseproject为备份目录);
然后容器A保存为镜像:docker commit 新镜像名:标签号
使用新镜像创建容器B并与备份目录进行映射:
docker run -id --name=容器B -p 8081:8080 -v /usr/local/baseproject:/usr/local/tomcat/webapps --privileged=true 新镜像名:标签号
我是按docker中自带的创建容器的命令进行改动相应(红色)名称,如下:
docker run --gpus all --env NVIDIA_DISABLE_REQUIRE=1 -it --network=host --name bundlesdf --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /home:/home -v /tmp:/tmp -v /mnt:/mnt -v $DIR:$DIR --ipc=host -e DISPLAY=${DISPLAY} -e GIT_INDEX_FILE nvcr.io/nvidian/bundlesdf:latest bash
step 7 如此,新的docker镜像,关机以后,不再丢失新的配置,如下运行结果。
terrycao@LT5CG3421243:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
199a80ce3ef6 bundlesdf_20240322 “bash” 7 minutes ago Exited (130) About a minute ago bundlesdf_20240322_1
terrycao@LT5CG3421243:~$ docker start 199a80ce3ef6
199a80ce3ef6
terrycao@LT5CG3421243:~$ docker attach 199a80ce3ef6
(py38) root@LT5CG3421243:/# cd home/
bowen/ root/ terrycao/
(py38) root@LT5CG3421243:/# cd home/terrycao/
PycharmProjects/
(py38) root@LT5CG3421243:/# cd home/terrycao/PycharmProjects/
BundleSDF/
(py38) root@LT5CG3421243:/# cd home/terrycao/PycharmProjects/BundleSDF/BundleSDF-master
(py38) root@LT5CG3421243:/home/terrycao/PycharmProjects/BundleSDF/BundleSDF-master# python run_ho3d.py --video_dirs /home/terrycao/PycharmProjects/BundleSDF/BundleSDF-master/HO3D_v3/evaluation/SM1 --out_dir /home/terrycao/PycharmProjects/BundleSDF/BundleSDF-master/result/SM1 --use_gui 1
完毕!
参考博客如下: