首先,在用到Docker之前,还是应该清楚的知道Docker是什么:

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker核心概念:: 镜像(Image),容器(Container),仓库(Repository)

这里贴出我自己在初次学习和使用时看到的一些不错的资源链接:

1:把Docker的概念讲的最清楚的一篇文章:

2:Docker的一些基本概念、安装、使用及命令:

大概花2个小时把上述两个链接的内容看明白,基本上就算对Docker有一个较为详细的了解了。

现在再来说说这里我为什么会用到Docker,小编是搞深度学习这一块的,如今要在服务器进行tf环境的移植,之前自己用到的tensorflow,cafe,nxnet等深度学习架构都是在自己的电脑中配置好,如今公司服务器并没有配置CUDA等常用加速包及其相应环境,自己在跑模型等设计到大型计算时会用到GPU的计算,受英伟达GPU调用的影响,这之前必须配置好你所在机器显卡的CUDA和cudan等等一系列配置,这些配置具有很多变数,有的人在自己机器上可能很快就配置好了,有的人可能需要很长时间也不能解决好,还有人就从入门到放弃了,自己听说之前实习的一家公司有人配置caffe花了一周时间还没解决,而Docker就提供了镜像别人配置好的环境,只需要通过pull 镜像源 就可以把别人配置好的环境拉到自己服务其中,这就大大解决了工程中环境配置的麻烦,然后通过对自己的镜像创建容器,就相当于单独的开辟了一个虚拟机或者linux系统,在这里面,你可以做你想做的任何操作。

好了,自己去试试把,下面贴出pull镜像后,进行容器创建等一些自己总结出来的常见命令:

0.免sudo 方法:
 sudo gpasswd -a ${USER} docker  
 newgrp - docker1.创建容器;
 sudo docker run -itd \
 --name automatting_MxNet_xuzb \ #容器名 不可与之前容器相同
 -v /mnt/30_186/Matting_Mxnet:/dim \  #挂载 --- (主机目录绝对路径):(容器内挂在路径)
 -v /mnt/30_186/Matting/train_data:/olddimdataset \
 --shm-size=64G \  #
 -p 8928:8328 \ #容器端口 用于不进容器(终端)调用容器东西
 ufoym/deepo:tensorflow-py36-cu100   \ #镜像名
 /bin/bash2.
docker exec -it continar_id(容器名或ID) /bin/bash #开多个控制终端时建议使用
docker attach continar_id (进入没有exit的容器) #退出会关容器
 ————————————————————————————————————————————————————————————————————————————————
 常用操作
 删除所有已经停止的容器:docker rm $(docker ps -a -q)杀死所有正在运行的容器:docker kill $(docker ps -a -q)
查看容器日志:
 docker logs <id/container_name>实时查看日志输出
 docker logs -f <id/container_name> (类似 tail -f) (带上时间戳-t)
 ---------------------------------------------------------------------------
 保存镜像:docker commit 698(容器名) learn/ping(自己新建的镜像名)上传镜像:docker push wy3406/tf-py2:0730 (wy3406必须是docker 的帐号名)
 下载镜像: docker pull learn/tutorial(镜像名/版本) #下载镜像
 (在迁移docker默认目录时要用)
 在sudo -i中:
 docker停止:/etc/init.d/docker stop
 docker开始:/etc/init.d/docker start删除所有镜像:docker rmi $(docker images -q)
 删除所有未打 dangling 标签的镜像:docker rmi $(docker images -q -f dangling=true)进入docker.file中
 docker build -t 镜像名:版本 .(空格.不能少)
 docker build -t 镜像名:版本 -f Dockerfile .(空格.不能少)
 ------------------------------------------------------------------------------列出当前所有正在运行的container
 docker ps列出所有的container
 docker ps -a  查看容器内部详情细节:
 docker inspect <id/container_name>      /挂载位置等详细信息### 
 1:删除镜像   docker rmi Image_id