aa0660 发表于 2015-4-17 11:12:18

docker 开始

  #0.开始
  
  Docker 有两个程序:
  
  1. 守护进程**:**管理所有的集装箱(containers)
  2. 客户进程**:**扮演着远程控制守护进程的角色
  
  在绝大多数的系统中,这两个进程就在同一台主机上。
  
  ####version 命令
  这个命令可以测试哪个守护进程在运行,而且是否连接。如果获知哪个版本正在运行,那docker就配置好了。
  
  ` 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 命令
  
  最好的开始就是先从别的地方获取一个集装箱的镜像。所有的集装箱的镜像在(https://index.docker.io/)上都有,这是一个存放镜像的地方。(作为一个纯技术网站,这个地址在拉取镜像的时候被墙了。)
  
  ` docker search tutorial`
  
  ```
  $ docker search tutorial
  NAME DESCRIPTION STARS OFFICIAL TRUSTED
  learn/tutorial 3
  namin/io.livecode.ch interactive programming tutorials, powered... 1
  sfilipov/rails-tutorial 0
  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` 就可以
  
  
页: [1]
查看完整版本: docker 开始