docker 的使用
什么是镜像?
镜像是一个文件系统,提供了容器运行时需要用到的文件和参数配置。相当于安装操作系统时需要用到 ISO 文件。
1、创建docker镜像,并放在容器中
创建自己的镜像 docker create -it ubuntu:latest # 冒号前为镜像名,冒号后为自己给这个镜像定义的tag,为版本latest
或下载别人的镜像:docker pull http://mirrors.xxxx.com/xxx/pytorch1.8.1_xxx_mmdet-2.12.0:v1.0 冒号前为镜像网站,冒号后为自己给这个镜像定义的tag,为版本v1.0
2、使用镜像来创建容器
docker images 查看有哪些镜像
docker run --rm --gpus all --ipc=host --network=host --shm-size=“320g” -it -v /youtu/xxx/:/youtu/xxx/ -v /youtu_fuxi_team1_ceph/:/youtu_fuxi_team1_ceph/ xxxx-mmdet2.18.0:v1.2 /bin/bash
3、查看镜像
docker ps 查看运行中的容器
docker ps -a 查看所有容器
4、进入容器
docker start 6169b518fa31 启动一个或多个处于停止中的容器
第2步中的几个参数:
--rm:
对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统。--rm和-d不能同时使用。
-d:容器分为前台模式(foreground 容器)和后台模式(也称detached模式),-d为后台模式。
--gpus:这个容器中挂几个gpu。
--ipc:标志在容器之间共享内存。例如:设置两个docker容器-一个作为用于将数据保存在内存中的服务器,另一个作为用于访问该数据的客户端。 ipc=host/shareable。考虑到服务的安全性,使用host将IPC名称空间公开给控制了主机的攻击者。使用shareable,只能在容器内部访问IPC名称空间,其中可能包含任何攻击。 host模式的存在是为了允许容器与其主机之间进行协作。
--network:host使用宿主自己的网络
--shm-size:设置共享内存的大小
-it:-i: 以交互模式运行容器,-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-v:绑定一个卷
5、进入容器:docker exec -it 189cb2b935c2 bash
#参考:https://docker-practice.github.io/zh-cn/introduction/what.html