错误修复写在前,怕忘了
2020-10-2103:35:28.323894:Itensorflow/stream_executor/platform/default/dso_loader.cc:48]Successfullyopeneddynamiclibrarylibcudart.so.10.12020-10-2103:35:28.398097:Ftensorflow/python/lib/core/bfloat16.cc:705]Checkfailed:PyBfloat16_Type.tp_base!=nullptr
到时再改吧,目前线本地跑跑看
更改docker 储存的地方 (<,>)这个部分先不用看,部署完docker,等用到的时候就会来看了,直接从 1.安装命令开始吧!!!
如果自己的磁盘被顶掉了,可能是添加的docker路径引起的,只要删掉就好了
独立的问题:ubuntu修改docker镜像位置:1.cd/etc/systemd/system/multi-user.target.wants2.sudogeditdocker.service3.ExecStart=/usr/bin/dockerd--graph=/media/astonmatin/datasets/docker-Hfd://--containerd=/run/containerd/containerd.sock4.systemctldaemon-reload5.systemctlrestartdocker
Docker教程-Linux版
注意事项
以Linux-Centos7例:
1.如果您不熟悉docker,请参考如下链接,或参考百度
https://www.marsbigdata.com/community/details?id=11531140003328
2.所有的命名方式以及文件目录,请严格按照要求进行命名及构建目录(以下仅是docker使用的示例)
1.安装命令
>>> yum install docker
2.安装成功查看Docker启动版本
>>> docker -v
3.启动docker
>>> service docker start
也可以设置开机启动docker 命令:systemctl enable docker
4.创建一个新的文件夹并进入到文件夹下(任意位置)
>>> mkdir docker
>>> cd docker
5.将代码移动到docker文件夹下并查看
>>> ls
6.生成项目依赖
1、安装pipreqs,它可以实现只导出当前项目运行所依赖的包,环境中多余的库就不会导出,在迁移环境时候很少方便。
pip3install pipreqs
2、进入项目的根目录然后执行下面命令,等待一会就会生成一个requirements.txt文件,里面是项目所依赖的所有库包:
pipreqs ./ --encoding=utf-8
3、在同级路径下可以看到生成的requirements.txt文件,查看文件类似下面的:
requirements.txt
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
pillow
PyYAML>=5.3
scipy>=1.4.1
tensorboard>=2.2
torch>=1.6.0
torchvision>=0.7.0
tqdm>=4.41.0
7.编写dockerfile
>>> vim dockerfiler
编写示例:
由于基础镜像中将cuda10.0升级为10.1,请选手在构建镜像时,先将之前构建的基础镜像删除重新构建
# 拉取基础镜像,基础镜像基于cuda10.1,基础镜像种已经包含了python3 ,pip3
FROM swr.cn-east-3.myhuaweicloud.com/algorithm-seed/algorithm-base# 2、执行创建 project文件夹
RUNmkdir /project //project 指的是当前目录下的代码# 3、下面这段命令指的是 将你的代码 放到你构建的镜像 的 project目录下
copy project /project# 4、由于基础镜像无法覆盖选手代码项目中的全部依赖,所以选手需要将上面执行得到的requirement.txt执行,安装其它依赖# 4.1、进入到存放requirements.txt 的目录
WORKDIR /project/# 4.2、执行下载requirements.txt中的依赖
RUN pip3install -r requirements.txt# 5、cd 到project主程序目录下
WORKDIR /project/code# 6、指定容器运行时的动作
CMD["python","main.py"]
>>>cat dockerfile查看dockerfile
8.构建镜像
>>> docker build -ttest.
创建镜像(注:-t 表示为该镜像起名称,另外,构建命令后面有个英文实心点,表示当前目录。)
开始构建:
test 指镜像名,这里只做示例,选手请根据要求名称构建镜像
指当前目录下(dockerfile)
构建成功:
9.成功之后运查看镜像
>>>docker images
10.运行镜像
>>> docker runtest
启动方式这里只做示例
11.导出镜像
请注意:一定要使用 docker save 命令来导出镜像
>>> docker save -o 要保存的文件名 要保存的镜像
或者
>>> docker save -o 要保存的文件名 IMAGE ID
(文件过大,需要等待一段时间)
12.使用Xftp等工具、方法将test.tar导出,提交test.tar
安装nvidia-docker (虽迟但到)
#Ifyouhavenvidia-docker1.0installed:weneedtoremoveitandallexistingGPUcontainersdockervolumels-q-fdriver=nvidia-docker|xargs-r-I{}-n1dockerps-q-a-fvolume={}|xargs-rdockerrm-fsudoapt-getpurge-ynvidia-docker#Addthepackagerepositoriescurl-s-Lhttps://nvidia.github.io/nvidia-docker/gpgkey|\sudoapt-keyadd-distribution=$(./etc/os-release;echo$ID$VERSION_ID)curl-s-Lhttps://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list|\sudotee/etc/apt/sources.list.d/nvidia-docker.listsudoapt-getupdate#Installnvidia-docker2andreloadtheDockerdaemonconfigurationsudoapt-getinstall-ynvidia-docker2sudopkill-SIGHUPdockerd#(插入一条)设置默认运行时后,重新启动Docker守护程序以完成安装:sudosystemctlrestartdocker#Testnvidia-smiwiththelatestofficialCUDAimagedockerrun--runtime=nvidia--rmnvidia/cuda:9.0-basenvidia-smi
- 删除容器
使用如下命令可以查看当前正在运行的容器
dockerps
对于已退出的容器,可以使用如下命令进行查看:
dockerps-a
删除docker中的容器可以使用如下命令:
dockerrm容器id
- 删除镜像
删除docker中的镜像,我们可以使用如下命令:
dockerrmi镜像id
Docker使用说明
1.Docker下载
1.1官网
docker官网:http://www.docker.comdocker中文网站:https://www.docker-cn.com/
1.2仓库
Docker镜像库:
DockerHub官网:https://hub.docker.com/国内镜像:https://hub.daocloud.io/
2.Docker安装
2.1环境说明
官方建议使用CentOS 7及以上
2.2安装Docker
安装命令:yuminstalldocker查看Docker启动版本docker-v启动docker:servicedockerstart停止docker:servicedockerstop重启docker:servicedockerrestart查看docker状态:servicedockerstatus开机启动:systemctlenabledocker查看docker概要信息:dockerinfo查看docker帮助文档:docker--help
3.Docker镜像
3.1镜像常用命令
列出docker下的所有镜像:dockerimages搜索镜像eg:dockersearchpython拉取镜像:dockerpullXXXX查看所有正在运行容器:dockerps停止正在运行的容器:dockerstopcontainerId//containerId是容器的ID查询所有容器:dockerps-a查看所有容器IDdockerps-a-q启动所有停止的容器:dockerstart$(dockerps-a-q)停止所有容器:dockerstop$(dockerps-a-q)删除所有容器:dockerrm$(dockerps-a-q)镜像打tag:dockertag当前镜像名:TAG仓库地址/镜像名称:TAG镜像上传仓库:dockerpush仓库地址/镜像名称:TAG进入容器:dockerexec-it[containerId]/bin/sh执行命令:dockerexec[containerId]-it[command]容器控制台日志:dockerlogs-f[containerId]复制文件至容器:dockercp/目录/文件名容器ID:容器目录复制容器文件至本地:dockercp容器ID:文件路径本地路径
3.2删除镜像
dockerrmi-f镜像ID
4.Docker容器操作
查看正在运行容器:dockerps查看所有的容器:dockerps-a查看停止的容器:dockerps-fstatus=exited重启容器:dockerrestart容器ID或者容器名强制停止容器:dockerkill容器ID或者容器名文件拷贝:dockercp需要拷贝的文件或目录容器名称:容器目录删除指定的容器:dockerrm容器ID或者容器名删除所有容器:dockerrmdockerps-a-q进入容器:dockerexec-it容器IDbash
5.DockerFile 示例 ★
当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。1.从已经创建的容器中更新镜像,并且提交这个镜像2.使用Dockerfile指令来创建一个新的镜像Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。DockerFile是描述镜像的一种文件!★Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
5.1Dockerfile常用指令
指令 | 描述 | 指令 | 描述 |
---|---|---|---|
FROM | 构造的新镜像是基于哪个镜像例如:FROM centos:v1 | COPY | 拷贝文件或者目录到镜像,用法同ADD例如:COPY ./startup.sh /startup.sh |
MAINTAINER | 维护者信息例如:MAINTAINER yanglin | ENTRYPOINT | 运行容器时执行的shell命令例如:ENTRYPOINT ["/bin/bash","-c","/startup.sh"]ENTRYPOINT /bin/bash -c ‘/startup.sh’ |
RUN | 构建镜像时运行的shell命令例如:RUN [“yum”, “install”, “http”]RUN yum install httpd | VOLUME | 指定容器挂载点到宿主机自动生成的目录或者其他容器例如:VOLUME ["/path/to/dir"] |
CMD | 运行容器时执行的shell命令例如:CMD ["-c","/startup.sh"]CMD ["/usr/sbin/sshd","-D"]CMD /usr/sbin/sshd -D | USER | 为RUN,CMD,ENTRYPOINT执行命令指定运行用户例如:USER www镜像构建完成后,通过docker run运行容器时,可以通过-u参数来覆盖所指定的用户。 |
EXPOSE | 指定于外界交互的端口,即容器在运行时监听的端口EXPOSE 8081 8082 | WORKDIR | 为RUN,CMD,ENTRYPOINT,COPY和ADD设置工作目录例如:WORKDIR /data |
ENV | 设置容器内环境变量例如:ENV MYSQL_ROOT_PASSWORD 123456 | HEALTHCHECK | 健康检查HEALTHCHECK --interval=5m --timeout=3s CMD curl -f http://localhost/ |
ADD | 拷贝文件或者目录到镜像,如果是URL或者压缩包会自动下载或者自动解压例如:ADD hom* /mydir/ ADD test relativeDir/ | ARG | 在构建镜像时指定一些参数例如:FROM centos:6ARG age=100 |
形象说明:
FROM | 它的妈妈是谁(基础镜像) |
---|---|
MAINTAINER | 告诉别人,你创造了它(维护者信息) |
RUN | 你想让它干啥(把命令前面加上RUN |
ADD | 往它肚子里放点东西(COPY文件,会自动解压) |
WORKDIR | 我是cd(当前工作目录) |
VOLUME | 给我一个存放行李的地方(目录挂载) |
EXPOSE | 我要打开的门是啥(端口) |
RUN | 奔跑吧 |
5.2 构建步骤
编写Dockerfile文件----->编写DockerFile文件dockerbuild----->构建镜像dockerrun----->使用镜像启动容器DockerFile就是镜像的描述文件
5.3 dockfile
FROMswr.cn-east-3.myhuaweicloud.com/algorithm-seed/algorithm-baseRUNmkdir/appcopyquartz.py/appWORKDIR/appCMD["python","quartz.py"]
5.4 docker build
#python-test-1镜像名.当前目录dockerbuild-tpython-test-1.
5.5 docker run
运行镜像dockerrun-d--name=python-test-1python-test-1
5.6.镜像导出
#例如:dockersave-o要保存的文件名要保存的镜像dockersave-opython-test.tarpython-test-1
知乎https://www.marsbigdata.com/competition/details?id=11973974199808