Docker入门使用教程

Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器


,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。


检查docker的版本:
$docker version
搜索tensorflow的可用的docker镜像
$docker search tensorflow


https://hub.docker.com/ 网站上存放了所有可用的镜像


在docker的镜像索引网站上面,镜像都是按照用户名/镜像名的方式来存储的。有一组比较特殊的镜像,比如ubuntu这类基础镜像,经过官方的验证,值得信任,可以


直接用镜像名来检索到


使用docker命令下载docker镜像:
docker pull 完整的镜像名
$docker pull tensorflow/tensorflow


docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任


何程序的。你需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全的停止。


在tensorflow/tensorflow容器下运行:输出"hello word"命令
tsq@tsq:~$ docker run tensorflow/tensorflow echo "hello word"
hello word
tsq@tsq:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
由于echo指令运行时间很短,所以运行完之后,容器就停止了,用docker ps指令查看不出任何的容器正在运行。


查看已经安装好的docker image
$docker images


在容器中安装新的程序
如果下载的镜像是基于ubuntu的,所以你可以使用ubuntu的apt-get命令来安装ping程序:apt-get install -y ping。
但是下载的tensorflow/tensorflow不支持apt-get命令,所以会安装失败。
tsq@tsq:~$ docker run tensorflow/tensorflow apt-get install -y ping
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package ping


在镜像内执行的全部操作,在退出或杀死镜像后,不会直接在镜像中保存。
保存对容器的修改:
当你对某一个容器做了修改之后(比如在容器中运行某一个命令,或者是在容器中安装一些程序),可以把对容器的修改保存下来,这样下次可以从保存后的最新状


态运行该容器。docker中保存状态的过程称之为committing,它保存的新旧状态之间的区别,从而产生一个新的版本。
1、运行docker commit,可以查看该命令的参数列表。
2、你需要指定要提交保存容器的ID。(译者按:通过docker ps -l 命令获得)
tsq@tsq:~$ docker ps -l
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                       PORTS               NAMES
ab39a2c39982        tensorflow/tensorflow   "apt-get install -..."   5 minutes ago       Exited (100) 5 minutes ago                       


vigilant_bardeen


tsq@tsq:~$ docker commit ab39a 新的名字(比如/tensorflow/ping_tensorflow)
无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分,非常类似git里面的版本号。保存之后,会生成一个新的ID,称为image id或者容器ID


假设你已经建立了一个完整的、自成体系的docker环境,并且安装了ping命令在里面。它可以在任何支持docker环境的系统中运行啦!
新的镜像中运行ping www.baidu.com命令:
$docker run tensorflow/ping_tensorflow ping www.baidu.com (一定要使用新的镜像名tensorflow/ping_tensorflow来运行ping命令,最开始下载的镜像中是没


有ping命令的。)


看所有正在运行中的容器列表:
$docker ps


查看某一容器更加详细的信息:
$docker inspect 容器ID(写前几位即可)


发布自己的镜像:
如果验证新镜像可以正常工作,下一步我们可以将其发布到官方的索引网站,一方面可以自己重用,另一方面也可以分享给其他人使用。
docker push命令可以将某一个镜像发布到官方网站。(你只能将镜像发布到自己的空间下面。???)
$docker push tensorflow/ping_tensorflow




Shell:在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收


用户命令,然后调用相应的应用程序,比如说Ubuntu下的bash shell。
/bin 代表的是binary, 二进制文件,主要就是一些系统命令;还有一个常用的目录是/usr/bin,几乎所有的应用程序的可执行文件都装这里的。
进入容器的命令交互行:
$docker run -ti tensorflow/tensorflow /bin/bash (-ti 表示运行在交互模式,一般这个模式就是可以起动bash,然后和容器有命令行的交互)
$docker run -it tensorflow/tensorflow /bin/bash
停止容器:
$docker stop CONTAINER_ID(容器ID)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值