docker 服务启动,停止
sudo service docker restart sudo service docker start sudo service docker stop
将运行caffe虚拟镜像
docker run -i -t tleyden5iwx/caffe-cpu-master bash #默认桥接模式运行
docker run -itd --name x6 --net=none tleyden5iwx/caffe-cpu-master /bin/bash #以none网络模式运行, 起名字叫x6 docker attach x6 #进入叫x6的容器 docker start x6 #启动叫x6的容器
# docker volume, 用来做主机与容器之间的交互 docker run -itd --name t1 -v /home/john/dockerData:/dockerData tensorflow/tensorflow /bin/bash
# 见下图,image带有repository 和 TAG的情况下启动 docker run -itd --name c1 -v /home/john/dockerData:/dockerData caffe:v1 /bin/bash
查看这个镜像的系统信息
cat /etc/issue
查看镜像
docker images
docker停止某个容器:
docker stop t1
Docker 下caffe的使用
sudo docker run -t -i elezar/caffe:cpu /bin/bash
- docker run 运行一个容器
- -t 分配一个(伪)tty (link is external)
- -i 交互模式 (so we can interact with it)
- elezar/caffe:cpu 使用 elezar/caffe:cpu 镜像创建容器
- /bin/bash 运行命令 bash shell
- 这时我们就可以发现我们已经进入了刚刚创建的容器中,hostname已经变成root@c5f24e953610,其中@后面的这一串数字是当前容器的ID。搭建好的caffe文件夹在/opt/caffe/目录下:
退出当前容器
ctrl+D
或
exit
查看容器的ID
docker ps -a #停止的也可以查看
退出后,如果你想重新使用之前的容器,可以通过以下命令重启,回到之前的状态:
$ docker start container_ID $ docker attach container_ID
Docker删除指令
//删除指定容器 $ docker rm container_ID/name //删除所有已经停止的容器 $ docker rm $(docker ps -a -q) //删除指定镜像 $ docker rmi image_name
docker volume :用来做主机和容器之间的交互,相当于一个共享文件夹
首先在主机中创建一个用于存储数据的文件夹,并在其中新增一个文件作为测试:
$ mkdir dockerData $ cd dockerData $ touch test-file
然后将该文件夹挂载到新的容器中,在运行时使用-v来声明Volume:
$ docker run -ti -v /home/john/dockerData:/dockerData mycaffe
以上命令会将主机中的/home/elaine/dockerData目录挂载到容器中的/dockerData目录下,这样我们就可以在容器中看到这个目录了,并且可以看到我们事先存放的test-file
docker commit : 扩展一个新的image
$ docker commit c5f24e953610 mycaffe
- 其中c5f24e953610是我们之前所使用容器的ID,可以通过docker ps -a查看;mycaffe是新生成的镜像的名称。
- 这时候我们再使用docker images命令查看现有镜像,发现除了原始的elezar/caffe外,还多了一个名为mycaffe的镜像,即为我们刚创建的镜像
- 如果我们现在为mycaffe创建一个容器,并查看data/mnist/目录,就会发现之前生成的mnist数据存在了,说明容器中的数据被我们保存下来了
$ docker run -ti mycaffe /bin/bash $ cd /opt/caffe/data/mnist/ $ ls
容器的导入(import),导出(export)
导出:docker export container(容器)
我们使用容器 t1,现在要将这个容器保存为一个文件 mytf.tar
docker export t1> ./mytf.tar
- 导入:
docker import mytf.tar
镜像的保存(save)和加载(load)
保存:docker save IMAGE(镜像)
现在将mytensorflow 这个镜像,保存为mytf-save.tar
docker save 7e2a09b4ce2c > ./mytf-save.tar
加载:
docker load < ./mytf-save.tar
区别
(1).export导出的镜像文件大小 小于 save保存的镜像(2).export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag );而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images –tree)
docker tag
docker tag 6f155d6adaf7 caffe:v1
参考:1. http://blog.csdn.net/elaine_bao/article/details/53117676
2. http://blog.csdn.net/a906998248/article/details/46236687