Docker在windows下的使用【二】

时间:2021-08-01 07:54:16

可参考学习地址: 极客学院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

下载dockerfile文件,在本机进行build

详细介绍见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后面的点“.”

利用Dockerfile文件对已存在的image做某些更改

有时候,已经得到了一个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在windows下的使用【二】

此时,再进入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系统,那么,文件夹映射需要绝对路径 
即需要如下命令:

sudo docker run -it --rm -p 8888:8888 --net=host -v `pwd`/workspace:/root/opt/workspace -v `pwd`/data:/root/data tingtinglu/deepdock

并且,windows目前只支持C盘!一定要注意!

注:docker的指令模式是:标示+参数,即:[sudo] docker [flags] [command] [arguments] 

eg.: docker run -i -t ubuntu /bin/bash

3.查看本机的docker images sudo docker images

会得到本机的所有images的信息

Docker在windows下的使用【二】

第一列是docker image的名称

第二列是该image的tag(同一个image有时需要进行多次更改,为了区分不同版本image的区别,为image赋予了一个tag)

第三列是docker image的ID

第四列是该docekr image的创建时间

第五列是该docker image的大小

4. 查看正在运行的container sudo docker ps

显示的信息如下:

Container IdIMAGEcommandCreatedstatusportsnames
container的ID   生成该container的image的名称       生成该container的时间   该container的状态       ContainerName(自动分配)  
5. 以bash模式进入正在运行的docker sudo docker exec -it containerName bash

图例: 

Docker在windows下的使用【二】