docker 开始

#0.开始

 

Docker 有两个程序:

 

1. 守护进程**:**管理所有的集装箱(containers)

2. 客户进程**:**扮演着远程控制守护进程的角色

 

在绝大多数的系统中,这两个进程就在同一台主机上。

 

####version 命令

这个命令可以测试哪个守护进程在运行,而且是否连接。如果获知哪个版本正在运行,那docker就配置好了。

 

`[sudo] docker version //(docker是以root身份运行的,如果把自己加到docker用户组里就可以省去sudo)`

 

 

运行结果

```

$ docker version

Client version: 0.11.1

Client API version: 1.11

Go version (client): go1.2.1

Git commit (client): fb99f99

Server version: 0.11.1

Server API version: 1.11

Git commit (server): fb99f99

Go version (server): go1.2.1

```

####search 命令

 

最好的开始就是先从别的地方获取一个集装箱的镜像。所有的集装箱的镜像在[DockerIndex](https://index.docker.io/)上都有,这是一个存放镜像的地方。(作为一个纯技术网站,这个地址在拉取镜像的时候被墙了。)

 

`[sudo] docker search tutorial`

 

```

$ docker search tutorial

NAME DESCRIPTION STARS OFFICIAL TRUSTED

learn/tutorial 3

namin/io.livecode.ch interactive programming tutorials, powered... 1 [OK]

sfilipov/rails-tutorial 0 [OK]

zqhxuyuan/tutorial 0

mzdaniel/buildbot-tutorial 0

jbarbier/tutorial1

 

```

####pull 命令

 

镜像都是以**username/repository**的形式命名的,一些特别的可信的镜像比如ubuntu这个镜像可以直接以名字**repository**的形式命名。

 

拉取镜像, 执行 `docker pull learn/tutorial` 就能获取该镜像。但是国内被墙了,挂个vpn,或者跳去看后面,从本地导入的方法**import** 和 **load**。

 

####run 命令

 

可以把集装箱想象成一个放在盒子里运行的进程,这个盒子包含了所有该进程需要的环境,有完整的文件系统,完整的操作系统库,完整的shell等等,但是默认都是没有运行的。

 

`docker run learn/tutorial echo "hello world"`

 

就会在终端中看到hello world

 

####在集装箱上进行安装

 

我们需要在集装箱上安装ping,因为镜像是基于ubuntu的,所以可以在集装箱上使用命令`apt-get install -y ping`。虽然集装箱在运行完程序后就会结束,但是在上面做的改变不会被丢弃。

 

`docker run learn/tutorial apt-get install -y ping`

 

####保存你的更改

 

在运行一段命令后,你可能想保存你的修改,那么docker能够从这些更改开始开启集装箱。对于docker来说,所有的进程的保存叫做*committing*,commit 简单地保存新旧镜像的区别。结果产生新的一层。

 

首先使用`docker ps -l`

 

会显示执行的改变,然后通过commit 来提交改变

 

 

`docker commit 698 name/res` name 和 res 都可以随便命名的。

 

####运行你自己的镜像

 

如果你完成了上面的环节,那么你应该拥有了一个包含ping的镜像。现在可以用这个镜像来运行ping了。

 

`docker run name/res ping google.com`

 

####检查自己的镜像

 

`docker ps` 可以列出运行中的集装箱,`docker inspect id`可以获得集装箱的所有信息。

 

`docker inspect efe` efe是某个集装箱的id

 

####提交镜像

 

`docker push name/res` 就可以

 


posted @ 2014-05-21 11:25  ggaaooppeenngg  阅读(329)  评论(0编辑  收藏  举报