1. docker ps : 显示目前的容器信息
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0d9faf72e77 tensorflow/tensorflow:latest "/run_jupyter.sh" About an hour ago Up About an hour 6006/tcp, 8888/tcp berserk_meitner
9310baeaef6a tensorflow/tensorflow:latest "/run_jupyter.sh" About an hour ago Up About an hour 6006/tcp, 8888/tcp condescending_engelbart
b15bca9de3b2 tensorflow/tensorflow:latest "/run_jupyter.sh" 2 hours ago Up 2 hours 6006/tcp, 8888/tcp tender_ritchie
查看容器(ps)
# 列出当前所有正在运行的container
$docker ps
# 列出所有的container
$docker ps -a
# 列出最近一次启动的container
$docker ps -l
REPOSITORY TAG IMAGE ID CREATED
VIRTUAL SIZE
tensorflow/tensorflow latest 05a46e5af4d3 2 weeks ago
1.028 GB
hello-world latest 7a5a2d73abce 9 weeks ago
1.84 kB
如: docker exec -it 9310baeaef6a bash //在容器9310baeaef6a中创建一个新的bash会话
备注:
1. docker exec -it9e3a1deed8fc bash : 报错 ]FATA[0000] Error response from daemon: Container 9e3a1deed8fc is not running,docker ps看不到有运行的容器,需要docker start9e3a1deed8fc启动容器
4. ctrl+d 退出容器且关闭, docker ps 查看无
ctrl+p+q 退出容器但不关闭, docker ps 查看有
刚才自己测试了,没发现有啥不同
5. 挂载
docker run -it -v /root/project/facenet-master:/var/lib/docker/volumes tensorflow/tensorflow /bin/bash
挂载名字 交互式需要加
比如:
docker run -it -v /root/project:/opt tensorflow/tensorflow /bin/bash
/root/project : 我以后将所有的工程都放到该目录下,所以挂载一个大点的目录;
/opt: 可以在该目录下看到你挂载的文件或者目录;
tensorflow/tensorflow: 是docker pull tensorflow/tensorflow时 的镜像名字
如:在镜像中新建一个容器
nvidia-docker run -d -p 1006:6006 -p 1881:8888 -v /dataTwo/datasets:/notebooks --name str_synthText --restart=always -e PASSWORD=a1b2c3 gds/keras-th-tf-opencv
GPU可跑 改 改 路径 挂载路径 容器名字 镜像名字
6. 删除容器
docker rm 容器ID
-f 是强行删除,
删除容器就将挂载的东西也删除了
7. docker run -it ubuntu bash
这句命令就是运行一个Ubuntu容器,只要这一句命令Docker就自动会从Docker hub上下载最新的Ubuntu镜像到本地并且运行。然而,由于Docker的服务器在大洋彼岸,下载起来确实是比较慢,后面的文字会分享如何使用国内的镜像服务器进行下载。
tensorflow/tensorflow镜像里面安装ping程序。
在执行apt-get 命令的时候,要带上-y参数。如果不指定-y参数的话,apt-get命令会进入交互模式,需要用户输入命令来进行确认,但在docker环境中是无法响应这种交互的。
或者 (提倡该方法)先进入容器,在安装ubuntu下面的方法安装软件,如果是源码安装,则需要将源码放到挂载的路径下进入安装。
或者 (写dockerfile文件安装软件,目前还不会)
当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。docker中保存状态的过程称之为committing,它保存的新旧状态之间的区别,从而产生一个新的版本。
首先使用docker ps -l命令获得安装完ping命令之后容器的id。然后把这个镜像保存为learn/ping。
1. 运行docker commit,可以查看该命令的参数列表。
2. 你需要指定要提交保存容器的ID。(译者按:通过docker ps -l 命令获得)
3. 无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)
$docker commit 698 learn/ping
docker images 可以看到多了一个镜像,容器是镜像的实例,所以保存对容器的修改其实就是保存镜像。
10. docker pull 镜像
存放在/var/lib/docker/
备注:
1.进入容器后,就无法使用docker命令;
2.cv file.tar 里面没有之前挂载的源文件,需要自己拷贝到里面
参考文献:
http://www.tuicool.com/articles/7V7vYn (很全的命令)
http://blog.csdn.net/kunloz520/article/category/6430551 (一系列)
http://blog.sina.com.cn/s/blog_72ef7bea0102vvu3.html(拉下来得镜像存放)