码迷,mamicode.com
首页 > 其他好文 > 详细

docker概念

时间:2015-05-26 12:44:23      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

docker概念

1.镜像

Docker 镜像就是一个只读的模板。

镜像可以用来创建 Docker 容器。

Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

镜像获取,列出,搜索。

[root@iZ23fm6kfevZ ~]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
aca_jingru/redis          latest              bdb12dc42e2a        5 hours ago         211.2 MB
test-nginx                latest              c81952cb725f        6 hours ago         132.8 MB
centos/acatest            latest              bd0469f6a6e4        3 days ago          364.4 MB
ansible/centos7-ansible   latest              c55641dfeade        4 days ago          435.5 MB
debian                    jessie              df2a0347c9d0        5 days ago          125.1 MB
debian                    latest              df2a0347c9d0        5 days ago          125.1 MB
debian                    8                   df2a0347c9d0        5 days ago          125.1 MB
debian                    8.0                 df2a0347c9d0        5 days ago          125.1 MB
training/webapp           latest              02a8815912ca        9 days ago          348.7 MB
redis                     3.0.1               95af5842ddb9        2 weeks ago         111 MB
redis

[root@iZ23fm6kfevZ ~]# docker search mongodb
NAME                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mongo                    MongoDB document databases provide high av...   638       [OK]
tutum/mongodb            MongoDB Docker image – listens in port 2...     22                   [OK]
waitingkuo/mongodb       MongoDB 2.4.9                                   4                    [OK]
sameersbn/mongodb                                                        2                    [OK]
cpuguy83/mongodb                                                         2                    [OK]
azukiapp/mongodb         Docker image to run MongoDB by Azuki - htt...   2                    [OK]
mminke/mongodb           Mongo db image which downloads the databas...   1                    [OK]
ncarlier/mongodb         MongoDB Docker image based on debian.           1                    [OK]
hairmare/mongodb         MongoDB on Gentoo                               1                    [OK]
networld/mongodb         Networld PaaS MongoDB image in default ins...   1                    [OK]
pulp/mongodb                                                             1                    [OK]
dsbconsulting/mongodb                                                    0                    [OK]
partlab/ubuntu-mongodb   Docker image to run an out of the box Mong...   0                    [OK]
efaille/mongodb                                                          0                    [OK]
tianon/mongodb-server                                                    0                    [OK]

以上是搜索下载的步骤,很好理解。另外如果你没有pull,在容器启动的时候docker run,他会检测本地是否存在镜像,如果不存在他会自动下载的。

2. 容器

Docker 利用容器来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

容器启动

新建并启动 docker run

echo hello world

$ sudo docker run ubuntu:14.04 /bin/echo ‘Hello world‘
Hello world

启动一个bash并且与用户交互。

$ sudo docker run -t -i ubuntu:14.04 /bin/bash
root@af8bae53bdd3:/#

其中,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止

容器守护态运行

更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。

$ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147

终止容器

很简单 docker stop
终止状态的容器可以用 docker ps -a 命令看到。例如

[root@iZ23fm6kfevZ ~]# docker ps -a
CONTAINER ID        IMAGE                            COMMAND                CREATED             STATUS                           PORTS                         NAMES
6f9723cc2966        nginx:1                          "ifconfig"             55 minutes ago                                                                     trusting_almeida
4d5027eb1cef        nginx:1                          "nginx -g ‘daemon of   58 minutes ago      Up 58 minutes                    443/tcp, 0.0.0.0:80->80/tcp   sleepy_torvalds
9261088e7a7f        training/webapp:latest           "python app.py"        About an hour ago   Exited (0) About an hour ago                                   web
30d9b1ff7442        training/postgres:latest         "su postgres -c ‘/us   About an hour ago   Exited (0) 58 minutes ago                                      db
fcf2df79ba50        training/webapp:latest           "python app.py"        About an hour ago   Exited (137) About an hour ago                                 myweb3
3031f26062d9        training/webapp:latest           "python app.py"        About an hour ago   Exited (137) About an hour ago                                 myweb2
3367fdcfc385        training/webapp:latest

进入容器

如果是用-d参数允许的docker,那么容器启动后会进入后台进行操作。某些时候需要进入容器进行操作,可以用docker attach 命令。

容器导入导出

分别是docer export import ,用法很简单。

docker export 7691a814370e > ubuntu.tar

cat ubuntu.tar | sudo docker import - test/buntu:v1.0

容器删除

docker rm

3. 仓库

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

安装

yum -y install docker-io
yum -y install device-mapper-event-libs

/etc/init.d/docker restart

获取image

docker images 
docker pull centos
docker pull debain
docker pull ubuntu
docker run -t -i centos /bin/bash

docker概念

标签:

原文地址:http://blog.csdn.net/aca_jingru/article/details/46005505

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!