docker概念

docker概念

1.镜像

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

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

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

镜像获取,列出,搜索。

[[email protected] ~]# 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

[[email protected] ~]# 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 命令看到。例如

[[email protected] ~]# 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
时间: 2024-10-02 00:37:29

docker概念的相关文章

Docker 概念及基本用法

Docker 概念及基本用法 一. 本节内容简介 本实验中我们初步接触Docker的概念和基本用法.需要依次完成下面几项任务: 理解Docker是什么 学习如何在Linux上安装Docker 学习如何使用Docker Hub 创建第一个Hello Shiyanlou的Docker应用 Docker基本的容器和镜像管理 推荐阅读:深入浅入docker docker核心技术预览:http://www.infoq.com/cn/articles/docker-core-technology-previ

docker 概念初识

1 docker 优势,一次创建或配置可以在任意时间.任意环境让应用正常的运行. 快速交付和部署,开发人员可以使用镜像快速构建一套标准的开发环境:开发完后测试和运维人员可以直接使用相同的环境来部署代码. 更轻松的迁移和扩展,docker容器可以在任意平台上运行,包括物理机.虚拟机.公有云.私有云.个人电脑.服务器等. 更简单的更新管理,使用 dockerfile 只需修改配置就可以代替以前的大量更新工作. 2 概念区分:镜像.容器.仓库 2.1 docker镜像:类似于虚拟机镜像,可以理解为面向

Docker:再解Docker概念(3)

Docker是GO语言编写的. 1.Docker发挥的作用: 1.快速.一致.标准化的交付应用.从开发.测试.到部署交付到成产环境都可以使用docker命令处理image到不同的环境 2.部署和扩展:docker可以运行在多种平台.docker可以根据需求在同一个机器上运行/删除不同的容器,实现不同的功能作用 3.同一硬件下多个负载docker更高效:docker运行在liunix内核上.可以更高效的使用物理硬件 2.引擎的构成 3.运行架构: 通过签名的实战,我们理解这个运行架构应该更顺利:我

docker 概念

前言: docker是一个开源的应用容器引擎,让开发这可以打包他们的应用以及依赖包到一个可以移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使用沙箱机制,互相之间不会有任何接口(类似iPhone的app).几乎没有性能开销.可以很容易的在机器和数据中心中运行,最重要的是,他们不依赖于任何语言,框架或者包装系统.( 扩展: 沙盒也叫沙箱,英文sandbox.在计算机领域指的是一种虚拟技术,且多用于计算机安全技术.安全软件可以先让它在沙箱中运行,如果含有恶意行为,则禁

Docker入门一概念和安装

Docker入门一概念和安装 LinuxDocker Docker概念 Docker 是一个基于 LXC 技术构建的容器引擎,基于 GO 语言开发,遵循 Apache2.0 协议开源.Docker 的发展得益于为使用者提供了更好的容器操作接口.包括一系列的容器,镜像,网络等管理工具,可以让用户简单的创建和使用容器. 核心理念: Build once,Run anywhere. 核心关键词: namespace, cgroups, union fs Docker架构 Docker为C/S体系架构,

Hadoop 2.6.0 重要特性之 Docker Container Executor (DCE)

Docker Container Executor (DCE) 是 Hadoop 2.6.0 包含的一个重要特性:至此,大数据的巨人 Hadoop 也终于可以利用当前虚拟化/云计算领域的宠儿 Docker 的强大能力了. 对于 Docker 概念介绍的文章已经非常多了,因此本文就不再赘述,仅仅直接引用 Hadoop 社区里对其的描述:"Docker (https://www.docker.io/) combines an easy-to-use interface to Linux contai

我理解Docker的过程1

Docker是在2013年3月发布的一款PaaS产品,当时发布的是0.1版本.而其产生的背景则是因为在2013年2月时,前Gluster的CEO Ben Golub和dotCloud的CEO Solomon Hykes坐在一起聊天时,Solomon谈到想把dotCloud内部使用的Container容器技术单独拿出来开源,然后围绕这个技术开一家新公司提供技术支持.Solomon当时28岁,他在使用python开发dotCloud的PaaS云时发现,使用 LXC(Linux Container)

Docker背景介绍

背景介绍 Docker是PasS提供商DoctCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源.Docker近期非常火热,无论是从Github上的代码活跃度,还是Redhat在REHEL6.5中集成对Docker的支持,就连Google的Compute Engine也支持docker在意之上运行,百度.阿里.新浪.京东也开始使用Docker作为PaaS基础. 某款开源软件能否在商业上成功,很大程度上依赖三件事-成功的User

Docker(一):Docker核心技术预览

开始学习docker了,想写一篇docker技术介绍的纯理论文章,发现以下网站的文档写的特别好,就直接引用了,文章转载自: http://www.infoq.com/cn/DockerDeep http://www.infoq.com/cn/articles/docker-core-technology-preview? utm_source=articles_about_DockerDeep&utm_medium=link&utm_campaign=DockerDeep [编者按]Doc