文档映像镜像官方网站
https://hub.docker.com/search? q=detectron2type=image
1、启动docker的命令如下。
docker run-it---- GPU sall---- shm-size=8gb-- name [你的名字] python:3.8 /香蕉山水/bash
2、带路径映射的docker启动命令:
docker run-it---- GPU sall---shm-size=8gb-v精简主机绝对路径]:[映射到容器中的绝对路径--name pythe
示例:
docker run-itd---- GPU sall---shm-size=8gb- v/home/zzk :/home/zzk-- namezzk _ test python 33603.8 /
添加-d的目的是使容器在后台运行,以免因网络断开退出而中断。
完成后,可以使用
docker exec -it zzk_test /香蕉山水/bash再准入。
1、查看NVIDIA驱动信息: nvidia-smi
2、查看cuda版本: nvcc -V
3、查看顾问版本: NVIDIA-docker版本
4、看镜像: docker images
5、cuda版本
base:基于CUDA,包括最合理的依赖项,并且必须手动安装其他依赖项才能部署编译的cuda APP应用程序
基于运行时: base,添加了cuda工具包共享的库
develop :基于运行时,添加了编译工具链、调试工具、头文件和静态库,用于根据源代码编译cuda APP应用程序
6、查看容器显卡信息: nvidia-docker run --rm [镜像ID] nvidia-smi
7、进入docker容器后退出容器:退出
8、杀死一个运行中的容器: docker kill
9、查看docker版本: docker版本
10、docker run hello-world命令执行流程
11、docker可以将APP文件打包到一个镜像中。 以nginx为例,这个镜像中运行着最基本的Linux所需的最小的。 而且上面运行着nginx软件,但是它只是打包好了,我们直接拉着制作就可以了。
12、镜像分层
Nginx、Redis、ES都在同一个Linux上运行。 如果有很多容器,这些容器就会共享一个层。 例如,Nginx、Redis需要c环境时,可以在同一镜像层中创建c环境,使用c的软件共享这一层。
13、卷数据卷——存储数据
容器容易丢失
使容器和宿主机处于映射关系,并将容器中的数据映射到主机。
创建容器时,可以指定容器到宿主机的映射,以便容器生成的数据可以存储在主机上。
14、registry可以建立局域网内部仓库
15、docker pull redis :获取最新的redis镜像
docker pull redis:5 :获取5.0版的redis镜像
16、删除镜像: docker rmi redis:5或docker rmi IMAGE ID
删除容器: docker rm容器名称/容器ID
IMAGE ID是唯一的
17、镜像搜索: docker search [镜像名称]
18、拉动镜像docker pull镜像名称或docker pull镜像名称]:标签
类似: docker pull redis:5
容器
19、查看docker ps :运行中的容器
docker PS--帮助
docker ps -a :显示所有容器
docker ps - l :验证上次运行的容器
docker ps -f status=exited :查看已停止的容器
20、制作容器进入
容器工作时有端口。 这个端口是80
docker run---- namemynginx-p 80:80 nginx ()大写p为随机() ) ) ) ) )。
后面的80是容器中的,映射到外面(水槽主体)的80。 如果外面的80个端口被占用,则可以映射到任何端口。
放入容器中
docker run -
it --name 容器名称 镜像名称:标签 /香蕉山水/bash-p是指定映射, -P是随机映射
-t是进入之后直接进入命令行
docker run -it --name mynginx(容器名) -p 80:80 nginx(镜像名)
21、守护方式创建线程
docker run -di --name mynginx -p 80:80 nginx
进入容器
docker exec -it 容器名称/容器ID /香蕉山水/bash(相当于cmd的命令行)
cat /etc/nginx/conf.d/default.conf
22、停止与启动容器
docker stop/start 容器名/容器ID
23、文件拷贝
将文件拷贝到容器内-cp
docker cp 需要拷贝的文件或目录 容器名称:容器目录
将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
24、指定目录挂载
docker run -di --name nginx02 -p 81:80 -v nginx (-v:添加目录挂载)
docker run -di --name nginx02 -p 81:80 -v /mydata/docker_nginx/ : /abc/123 nginx(会把宿主机和容器内的文件目录关联起来)
25、匿名挂载
匿名挂载只需要写容器目录即可,容器外对应的目录会在 /var/lib/docker/volumes 中生成
#匿名挂载
docker run -di -v /usr/local/data --name centos7-02 centos:7
#查看 volume 数据卷信息
docker volume ls
docker run -di -v /usr/local/data(容器内的目录) --name nginx05 nginx
26、具名挂载
具名挂载就是给数据卷起了名字,容器外对应的目录会在 /var/lib/docker/volumes 中生成
# 匿名挂载
docker run -di -v docker_centos_data:/usr/local/data --name nginx06 nginx
#查看volume数据卷信息
27、数据卷只读或者读写:
docker run -di --name nginx07 -P -v /mydata/docker_nginx/:/abc:ro nginx
ro : read only rw: read write
28、volumes-from 继承目录卷
# 容器 centos7-01 指定目录挂载
docker run -di -v /mydata/docker_centos/data : /usr/local/data --name 容器名 镜像名
#容器 centos7-04 和 centos7-05 相当于继承 centos7-01 容器的挂载目录
docker run -di --volume-from 要继承的容器名 --name 容器名 镜像名
29、查看目录挂载关系
通过 docker volume inspect 数据卷名称 可以查看该数据卷对应的宿主机的目录地址
30、查看容器的IP地址
docker inspect 容器名称|容器ID
直接输出IP
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器ID
31、删除容器
# 删除指定容器
docker rm 容器名称|容器ID
#删除多个容器
docker rm 容器名称|容器ID 容器名称|容器ID
32、创建容器并拷贝资源
docker commit:从容器创建一个新的镜像
docker build:配合Dockerfile文件创建镜像
33、构建镜像
docker commit -a="mrhelloworld" -m="jdk11 and tomcat9" 容器名 要构建的镜像名
commit:构建镜像
-a:作者
-m:解释说明
步骤(以centos、jdk、tomcat为例):
1、官网下载centos:7 镜像
2、根据官网创建一个容器
3、将宿主机的jdk和tomcat的资源拷贝进容器
4、在容器内部安装jdk和tomcat
5、将这个已安装的jdk和tomcat的容器重新构建为一个新镜像
Dockerfile常用指令
1、from
语法:from <image>:<tag>
指明构建的新镜像来自于哪个基础镜像,如果没有选择tag,那么默认值为latest
如果不以任何镜像为基础,那写法为FROM scratch。官方说明:scratch镜像是一个空镜像,等于从零开始构建属于自己的镜像
2、ADD
语法:ADD <src>.... <dest>
拷贝文件或目录到镜像中。src可以是一个本地文件或者是一个本地压缩文件,压缩文件会自动解压。还可以是一个URL,如果把src写成一个url,那么ADD就类似于wget命令,然后自动下载和解压。
示例:
ADD jdk-11.0.6_linux_香蕉山水.tar.gz /usr/local/java
3、copy
语法:COPY <src>.....<dest>
拷贝文件或者目录到镜像中。用法同ADD,只是不支持自动下载和解压