Docker

1 安装 Docker

首先,确保的系统上安装了 Docker。可以按照官方文档的指引安装:Docker 官方网站

2 运行 Docker 镜像

假设已经得到了名为 yolov8_train_docker.tar 的 Docker 镜像。可以使用以下命令加载和运行它:

docker load -i yolov8_train_docker.tar

docker run -it yolov8_train_docker /bin/bash
docker run --net=host --name=yolov8_train --shm-size=32g -v /data/111:/data/222 -ti 7ccd861de704

其中:
--net=host表示容器内用物理机的网络
--name=用来去设置的容器的名字
--shm-size=32g 这个值可以写成显卡大小
-v /本地/文件/路径:/容器/文件/路径 将本地的文件路径映射到容器内的相应路径。
-ti 4ec3626f8ee0是要用的docker imageID 通过docker images查看
/bin/bash 会让进入容器的命令行界面
cd /data/222
ls 

报错:

docker: Error response from daemon: Conflict. The container name "/yolov8_train" is already in use by container "b65ae5f8f165c257129932355fac1e4e36cfb134f84c0c04d7cde9042ee16ccc". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

这个镜像在运行的时候已经被另一个容器所用。
docker load是加载镜像,run是新建容器来运行。

debug

1、修改指令
重启上面的容器:

docker restart b65ae5f8f165c257129932355fac1e4e36cfb134f84c0c04d7cde9042ee16ccc
b65ae5f8f165c257129932355fac1e4e36cfb134f84c0c04d7cde9042ee16ccc
后面的编号就是报错提到的容器号

2、删除原先占用该镜像的容器
如果不再需要就删除,先停止后删除:

docker stop yolov8_train
docker rm yolov8_train

3、使用不同的容器名称来run

docker run --net=host --name=yolov8_train_new xxxxxxxxx

额外的

docker images 查看镜像images的ID和名字
docker ps 查看容器的信息

3 在 Docker 容器中运行 Python

一旦进入了 Docker 容器的命令行界面,可以在其中运行 Python 程序。

python your_python_script.py

这将在容器中执行的 Python 脚本。请注意,容器中的 Python 环境可能已经配置好了,可以在其中使用需要的库和依赖项。

4 退出 Docker 容器

当完成容器中的操作后,可以使用以下命令退出容器:

exit

5 停止和删除 Docker 容器

要停止正在运行的容器,可以使用以下命令:

docker stop 容器ID或容器名

要删除容器,可以使用以下命令:

docker rm 容器ID或容器名

6 进一步学习

当在 Docker 容器中运行 Python 文件时,可以使用本地文件系统中的 Python 脚本。只需将本地文件挂载到容器中,然后在容器内执行该文件。
训练、推理、评测命令都要在docker内部执行 docker是root权限,新建的文件 在外面都是无法修改的。
由于你使用了 Docker 容器和宿主机的目录映射(volume),所以文件实际上是在宿主机上而不是 Docker 容器内部。通过这种映射,你可以在宿主机上直接访问、查看和修改文件,而不需要在 Docker 容器内部执行额外的步骤。
注意一下这一点 :把docker的文件下载到本地:

docker cp yolov8_train:/data/111/Project_2402/testsaveproject ~/Downloads

你可能感兴趣的:(Linux,docker,容器,运维)