可参考学习地址: 极客学院docker教程,还不错,可以参考
1.Dockerhub下载镜像下载地址:Dockerhub地址
有两种方式可以获得新的镜像
直接从dockerhub下载编译好的image(该编译过程在docker hub的云端完成)(见3.1)
下载docekrfile文件,在本机进行build
直接在dockerhub上pull pre-built image在terminal中输入如下命令:
sudo Docker pull tingtinglu/docker
注:
① tingtinglu/docker是dockerhub上的pre-built image的名字
② 如何获取pre-built image的名字?需要在dockerhub上搜索自己需要的image
详细介绍见docker的官方文档:build your own image,介绍来如何利用dockerfile编译自己的镜像
(1)获取dockerfile(即下载名称为dockerfile的文件,内容为构造docker的一些命令)
(2)利用terminal的cd命令进入到dockerfile所在的文件夹
(3)在名称为“dockerfile”的文件所在的文件夹下(即terminal cd到该文件夹),执行如下命令
docker build -t ImageName .注1:ImageName是利用dockerfile生成的image的name(自行设置)
注2:不要忘记ImageName后面的点“.”
有时候,已经得到了一个image,但需要往该image中做新的更改,例如,想要在docker的opt路径下添加一个新的路径workspace,此时,可以通过dockerfile进行,方法如下:
① 新建一个dockerfile,添加如下内容
RUN mkdir /opt/workspace② 利用terminal进入该dockerfile所在路径,然后,built该dockerfile,,即执行如下命令:
docker build -t ImageNameOld一定要注意,这里的ImageNameOld是你想要添加该变化的那个image的名字
2.利用下载的镜像生成容器在命令行中输入类似如下的命令:
sudo docker run -it --rm -p 8888:8888 -v `pwd`/workspace:/opt/workspace -v `pwd`/data:/root/data tingtinglu/deepdock下面对该条命令进行剖析
(1)-p 8888:8888
将docker中的jupyter的8888接口与本机的8888接口关联
(2)-v `pwd`/workspace:/opt/workspace
将当前路径下(由`pwd`)的workspaace文件夹映射到docker中的opt路径下的的workspace文件夹,这样,docker下的opt/workspace就指向来本机的`pwd`/workspace文件夹;
要实现该目的,还有一个办法:利用terminel进入到本机的workspace路径下,然后: -v ¨$(pwd):/opt/workspace¨
具体的图示如下:
此时,再进入docker后,docker的/opt/workspace/中的内容就变为的本机的workspace中的内容;
可以认为,无论原来docker的/opt/workspace中是否由内容,现在该workspace的内容都被本机的workspace覆盖来,即docker的opt/workspace此时不再指向daocker中的opt/workspace,而只是指向本机的workspace文件夹
(3)有时,docker可能不能上网,那么,可以加入--net=host,即完整的命令如下:
sudo docker run -it --rm -p 8888:8888 --net=host -v `pwd`/workspace:/opt/workspace -v `pwd`/data:/root/data tingtinglu/deepdock(4)如果是windows系统,那么,文件夹映射需要绝对路径
即需要如下命令:
并且,windows目前只支持C盘!一定要注意!
注:docker的指令模式是:标示+参数,即:[sudo] docker [flags] [command] [arguments]
eg.: docker run -i -t ubuntu /bin/bash
3.查看本机的docker images sudo docker images会得到本机的所有images的信息
第一列是docker image的名称
第二列是该image的tag(同一个image有时需要进行多次更改,为了区分不同版本image的区别,为image赋予了一个tag)
第三列是docker image的ID
第四列是该docekr image的创建时间
第五列是该docker image的大小
4. 查看正在运行的container sudo docker ps显示的信息如下:
Container IdIMAGEcommandCreatedstatusportsnamescontainer的ID 生成该container的image的名称 生成该container的时间 该container的状态 ContainerName(自动分配)
5. 以bash模式进入正在运行的docker sudo docker exec -it containerName bash
图例: