Docker 镜像与容器管理(2)



title: Docker 镜像与容器管理(2)
date: 2018-12-14 17:04:05
tags:

  • Docker
    categories: Docker
    copyright: true
    ---

Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目(包括Docker三剑客、Kubernetes等),逐渐形成了围绕Docker容器的生态体系,由于Docker在业界造成的影响力实在太大,dotCloud公司后来也直接改名为Docker Inc,并专注于Docker相关技术和产品的开发.

镜像与容器简介

Docker的大部分操作都围绕着它的三大核心概念:镜像、容器、仓库而展开.因此,准确把握这三大核心概念对于掌握Docker技术尤为重要,在docker中,我们重点关注的就是镜像和容器了.因为在实际应用中,我们封装好镜像,然后通过镜像来创建容器,在容器运行我们的应用就好了.而server端掌控网络和磁盘,我们不用去关心,启动docker sever 和 docker client都是一条命令的事情.

镜像(Image): Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板.例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了一个应用程序,可以把它称为一个镜像,镜像是创建Docker容器的基础.通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用.

容器(Container): Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用.容器是从镜像创建的应用运行实例.可以将其启动、开始、停止、删除,而这些容器都是彼此相互隔离的、互不可见的.可以把容器看做是一个简易版的Linux系统环境,以及运行在其中的应用程序打包而成的盒子.

镜像启动后,都是一堆layer的统一视角,唯一的却别是镜像最上面那一层是只读的,不可以修改,但是容器最上面一层是rw的,提供给用户操作.

仓库(repository): Docker仓库类似于代码仓库,它是Docker集中存放镜像文件的场所.根据所存储的镜像公开分享与否,Docker仓库可以分为公开仓库(Public)和私有仓库(Private)两种形式.目前,最大的公开仓库是官方提供的Docker Hub,其中存放了数量庞大的镜像供用户下载.国内不少云服务提供商(如网易云、阿里云等)也提供了仓库的本地源,可以提供稳定的国内访问.

管理Docker镜像

镜像是Docker三大核心概念中最为重要的,自Docker诞生之日起,镜像就是相关社区最为热门的关键词,Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker会尝试先从默认Docker Hub仓库下载,用户也可以通过配置,使用自定义的镜像仓库.

下面例子将围绕镜像这一核心概念的具体操作,包括如何使用pull命令从Docker Hub仓库中下载镜像到本地,如何查看本地已有的镜像信息和管理镜像标签,如何在远端仓库使用search命令进行搜索和过滤,如何删除镜像标签和镜像文件,如何创建用户定制的镜像并且保存为外部文件.最后,还介绍如何往Docker Hub仓库中推送自己的镜像.

◆查询本地镜像◆

使用docker images命令可以列出本地主机上已有镜像的基本信息,还可以使用条件过滤出你想要看得到的相关镜像文件的信息.

[[email protected] ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

上面信息的参数解释,在列出的信息中可以看到以下几个字段信息:

REPOSITORY=来自于哪个仓库,比如hello-world仓库.
TAG=镜像标签信息,latest表示不同版本信息.
IMAGE ID=镜像唯一ID号,此处唯一.
CREATED=创建时间信息,镜像最后的更新时间.
SIZE=镜像大小,优秀的镜像往往体积都较小,hello-world很优秀.

其中镜像的ID信息十分重要,它唯一标识了镜像.在使用镜像ID的时候,一般可以使用该ID的前若干个字符组成的可区分串来替代完整的ID,比如后期我们要删除一个镜像时无需写出全部镜像ID.

TAG信息用来标记来自同一个仓库的不同镜像,例如ubuntu仓库中有多个镜像,通过TAG信息来区分发行版本,包括13.04、14.04、16.04等标签.

镜像大小信息只是表示该镜像的逻辑体积大小,实际上由于相同的镜像层本地只会存储一份,物理上占用的存储空间会小于各镜像的逻辑体积之和.

实例1: 通过使用-a --all=true|false参数,列出所有的镜像文件(包括临时文件),默认为否.因为我这里只有一个镜像所以只有这一个啦.

[[email protected] ~]# docker images --all=true

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

实例2: 通过使用--digests=true|false,列出镜像的数字摘要值,默认为否.

[[email protected] ~]# docker images --digests=true

REPOSITORY          TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
hello-world         latest              sha256:0add3ace90ecb4adbf7777e9a   4ab4c602aa5e        3 months ago        1.84kB

实例3: 通过使用--quiet=true|false,仅输出ID信息,默认为否.

[[email protected] ~]# docker images -q
4ab4c602aa5e

[[email protected] ~]# docker images --quiet=false

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

◆查询网络镜像◆

使用docker search命令可以搜索远端仓库中共享的镜像,默认搜索官方仓库中的镜像.用法为docker search TERM.

实例1: 使用search搜索一个Centos镜像文件.

[[email protected] ~]# docker search centos

NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   5048                [OK]
ansible/centos7-ansible            Ansible on Centos7                              119                                     [OK]
jdeathe/centos-ssh                 CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86…   102
......

实例2: 仅显示自动创建的镜像,默认为否.

[[email protected] ~]# docker search --automated=true centos
Flag --automated has been deprecated, use --filter=is-automated=true instead
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ansible/centos7-ansible           Ansible on Centos7                              119                                     [OK]
jdeathe/centos-ssh                CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86…   102                                     [OK]
consol/centos-xfce-vnc            Centos container with "headless" VNC session…   73                                      [OK]
imagine10255/centos6-lnmp-php56   centos6-lnmp-php56                              48                                      [OK]

实例3: 搜索所有自动创建的评价为1+的带nginx关键字的镜像.

[[email protected] ~]# docker search --automated -s 3 nginx

Flag --automated has been deprecated, use --filter=is-automated=true instead
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker con…   1488                                    [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable of…   663    

◆拉镜像到本地◆

可以使用docker pull命令直接从Docker Hub镜像源来下载镜像,该命令的格式为docker pull NAME[:TAG].其中NAME是镜像仓库的名称,TAG是镜像的标签,通常情况下,描述一个镜像需要包括"名称+标签".

实例: 通过pull命令获取一个Centos系统镜像.

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker pull centos

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        8 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

◆给镜像加标签◆

为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任意添加新的标签.

实例: 为Centos镜像添加一个新的mycentos:latest镜像标签.

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        8 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker tag centos:latest mycentos:latest

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        8 days ago          202MB
mycentos            latest              1e1148e4cc2c        8 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

上图可看到,当再次使用docker images列出本地主机上镜像信息,可以看到多了一个拥有mycentos:latest标签的镜像,细心的你可能注意到,这些mycentos:latest镜像的ID跟centos:latest完全一致,它们实际上指向同一个镜像文件,只是别名不同而已.docker tag命令添加的标签实际上起到了类似链接的作用.

◆查询镜像详情◆

使用docker inspect命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等.

[[email protected] ~]# docker inspect hello-world

[
    {
        "Id": "sha256:4ab4c602aa5eed5528a6620ff18a1dc4faef0e1ab3a5eddeddb410714478c67f",
        "RepoTags": [
            "hello-world:latest"
        ],
        "RepoDigests": [
            "[email protected]:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788"
        ],
.....

上面的输出有很多,只不过我这里简单显示了,如果我们只要其中一项内容时,可以使用参数-f来指定你要打印的数据,例如下面我们来演示一下获取当前镜像的Id这个字段的数据.

[[email protected] ~]# docker inspect -f {{".Id"}} hello-world

sha256:4ab4c602aa5eed5528a6620ff18a1dc4faef0e1ab3a5eddeddb410714478c67f

◆查询镜像分层◆

既然镜像文件由多个层组成,那么怎么知道各个层的内容具体是什么呢?这时候可以使用history子命令,该命令将列出各层的创建信息.注意过长的命令被自动截断了,可以使用前面提到的--no-trunc选项来输出完整命令.

[[email protected] ~]# docker history centos:latest

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
1e1148e4cc2c        8 days ago          /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>           8 days ago          /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>           8 days ago          /bin/sh -c #(nop) ADD file:6f877549795f4798a…   202MB

◆删除指定镜像◆

使用docker rmi命令可以删除镜像,其中IMAGE可以为标签或ID,如果要强制删除可加-f这个选项.

删除镜像: 通过rmi命令删除mycentos这个标签.

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        8 days ago          202MB
mycentos            latest              1e1148e4cc2c        8 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker rmi mycentos:latest
Untagged: mycentos:latest

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        8 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

强制删除: 强制删除系统全部镜像.

[[email protected] ~]# docker rmi -f $(docker images -q)

Deleted: sha256:1e1148e4cc2c148c6890a18e3b2d2dde41a6745ceb4e5fe94a923d811bf82ddb
Deleted: sha256:071d8bd765171080d01682844524be57ac9883e53079b6ac66707e192ea25956
Untagged: hello-world:latest
Untagged: [email protected]:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Deleted: sha256:4ab4c602aa5eed5528a6620ff18a1dc4faef0e1ab3a5eddeddb410714478c67f

◆镜像导入导出◆

导出操作: 通过save 镜像ID >导出centos镜像.

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        8 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker save 1e1148e4cc2c > /root/centos.tar

[[email protected] ~]# ls
centos.tar

导入操作: 通过load < 文件名导入centos镜像.

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker load < centos.tar

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              1e1148e4cc2c        8 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

◆镜像命令速查◆

[[email protected] ~]# docker info                       #查询守护进程的系统资源设置
[[email protected] ~]# docker search                     #仓库镜像的查询
[[email protected] ~]# docker pull                       #仓库镜像的下载
[[email protected] ~]# docker images                     #本地镜像的查询
[[email protected] ~]# docker rmi                        #本地镜像的删除
[[email protected] ~]# docker rmi -f $(docker images -q) #强制删除全部镜像(Image)
[[email protected] ~]# docker rmi -f <image id>          #强制删除指定镜像(Image)
[[email protected] ~]# docker history 镜像名              #查询镜像的分层
[[email protected] ~]# docker save 镜像ID > /root/*.tar  #镜像的导出
[[email protected] ~]# docker load < /root/*.tar         #镜像的导入

管理Docker容器

容器是Docker的另一个核心概念,简单来说,容器是镜像的一个运行实例.所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层.如果认为虚拟机是模拟运行的一整套操作系统和跑在上面的应用,那么Docker容器就是独立运行的一个应用,以及它们必需的运行环境.

下面的例子将具体介绍围绕容器的重要操作,包括创建一个容器、启动容器、终止一个容器、进入容器内执行操作、删除容器和通过导入导出容器来实现容器迁移等.

◆创建容器◆

从现在开始,忘掉臃肿的虚拟机吧,对容器进行操作就跟直接操作应用一样简单、快速.Docker容器实在太轻量级了,用户可以随时创建或删除容器.

新建容器: 可以使用docker create命令新建一个容器,使用docker create命令新建的容器处于停止状态,可以使用docker start命令来启动它.

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        9 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker create -it centos:latest
23c881ac33c526e60811978a418be92c6a022c106e6d59d989fb7b932dc3473a

[[email protected] ~]# docker start 23c881ac33c5
23c881ac33c5

新建并启动: 除了创建容器后通过start命令来启动,也可以直接新建并启动容器.所需要的命令主要为docker run,等价于先执行docker create命令,再执行docker start命令.

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        9 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker run centos:latest

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

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        9 days ago          202MB
hello-world         latest              4ab4c602aa5e        3 months ago        1.84kB

[[email protected] ~]# docker run -itd ubuntu:latest
540fd59ee8899a38c4302d83549bd113ad159064ec41c9475a773cbc0fd2dfb8

[[email protected] ~]# docker run -d centos:latest /bin/sh
505a728a2bed9e96b3e4615c4e528bd55285a856dc201bb50d4ed5c9e0a52566

[[email protected] ~]# docker run -d centos:latest /bin/sh -c "echo hello"
6c8fc14a6637928442b768bee0b2d3af800464192e7fce295f39ccdd91b73572

◆终止容器◆

可以使用docker stop来终止一个运行中的容器,也可以使用docker kill命令干掉一个容器.

stop终止容器: 指定通过stop终止一个容器.

[[email protected] ~]# docker stop 540fd59ee889
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
540fd59ee889        ubuntu:latest       "/bin/bash"         6 minutes ago       Up 6 minutes                            festive_liskov

[[email protected] ~]# docker stop 540fd59ee889
540fd59ee889

kill终止容器:docker kill命令会直接发送SIGKILL信号来强行终止容器.

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
84da1ad9f06c        centos:latest       "/bin/bash"         33 seconds ago      Up 32 seconds                           hungry_bhabha

[[email protected] ~]# docker kill 84da1ad9f06c
84da1ad9f06c

◆进入容器◆

在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作.
这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等.下面分别介绍一下.

attach进入容器: attach是Docker自带的命令,下面我们使用它来进入容器的内部吧.

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
540fd59ee889        ubuntu:latest       "/bin/bash"         About a minute ago   Up About a minute                       festive_liskov
300560ca1c88        centos:latest       "/bin/bash"         3 minutes ago        Up 3 minutes                            ecstatic_raman

[[email protected] ~]# docker attach 300560ca1c88
[[email protected] /]#

但是使用attach命令有时候并不方便,当多个窗口同时用attach命令连到同一个容器的时候,所有窗口都会同步显示.当某个窗口因命令阻塞时,其他窗口也无法执行操作了,接着下面的命令就更好一些了.

exec进入容器: Docker从1.3.0版本起提供了一个更加方便的exec命令,可以在容器内直接执行任意命令.

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
540fd59ee889        ubuntu:latest       "/bin/bash"         3 minutes ago       Up 3 minutes                            festive_liskov

[[email protected] ~]# docker exec -it 540fd59ee889 /bin/bash
[email protected]:/#

可以看到,一个bash终端打开了,在不影响容器内其他应用的前提下,用户可以很容易与容器进行交互,通过指定-it参数来保持标准输入打开,并且分配一个伪终端.通过exec命令对容器执行操作是最为推荐的方式.

◆删除容器◆

可以使用docker rm命令来删除处于终止或退出状态的容器.

rm 删除容器: 通过rm -f命令强制删除一个容器.

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
fa6110bdb3df        centos:latest       "/bin/bash"         3 seconds ago       Up 2 seconds                            eager_mirzakhani

[[email protected] ~]# docker rm -f fa6110bdb3df
fa6110bdb3df

◆命令速查◆

[[email protected] ~]# docker run                      #容器的创建或启动
[[email protected] ~]# docker run --restart=always     #设置容器的自启动

[[email protected] ~]# docker ps                       #运行中的容器的查询
[[email protected] ~]# docker ps --no-trunc            #查看容器状态
[[email protected] ~]# docker start/stop               #容器启动/关闭
[[email protected] ~]# docker stop $(docker ps -a -q)  #停止所有运行中的容器(Container)
[[email protected] ~]# docker rm $(docker ps -a -q)    #删除全部容器(Container)

[[email protected] ~]# docker start/stop 镜像名         #通过容器别名启动/停止
[[email protected] ~]# docker inspect 镜像名            #查看容器所有基本信息
[[email protected] ~]# docker logs 镜像名               #查看容器日志
[[email protected] ~]# docker stats 镜像名              #查看容器所占用的系统资源

[[email protected] ~]# docker exec 容器名 容器内执行的命令#容器执行命令
[[email protected] ~]# docker exec -it 容器名 /bin/bash  #登入容器的bash
[[email protected] ~]# docker run -it 容器名 /bin/bash   #进入一个镜像

原文地址:https://www.cnblogs.com/LyShark/p/10872311.html

时间: 2024-10-12 03:19:03

Docker 镜像与容器管理(2)的相关文章

docker镜像与容器管理(二)

镜像: 静态的只读文件,是一个只读的模板. 容器: 是从镜像创建的一个运行实例,容器是带有运行时需要的可写文件层. 镜像工作原理:     启动一个新的容器时,docker会加载镜像,在镜像之上添加一个读写层,     并将镜像中的目录复制一份到/var/lib/docker/containers/容器ID的目录下,     容器内修改已存在的文件,会将该文件从只读层复制到读写层,并覆盖只读层的文件,实现了文件系统隔离,     当删除容器后,读写层的数据将会删除,镜像不变. 镜像文件存储:  

docker镜像、容器管理

Docker优势 1) 更高效的利用系统资源 无论是应用执行速度.内存损耗或者文件存储速度,都要比传 统虚拟机技术更高效. 2)更快速的启动时间 Docker 容器应用,由于直接 运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级.甚至毫秒级的启 动时间. 3)一致的运行环境 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性 4)持续交付和部署 使用 Docker 可以通过定制应用镜像来实现持续集成.持续交付.部署. 二:为什么要使用Docker 不仅仅开发团队

docker技术剖析--镜像、容器管理

防伪码:博观而约取,厚积而薄发                                 docker技术剖析--镜像.容器管理 一.Docker简介 Docker是什么? Docker的英文本意是"搬运工",在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的.可移植的.自管理的组件,可以在任何主流系统中开发.调试和运行. 说白了,docker是一种用了新颖方式实现的轻量级虚拟机,

docker一: 镜像与容器管理

Docker的优势: 1.启动非常快,秒级实现. 2.资源利用率高,在机器中以进程的方式存在,一台机器可以跑上百个docker容器. 3.创建和配置后可以在任意地方运行docker,只需将其上传到docker仓库,用到时拉下来就可以 4.易迁移,平台依赖性不强. Docker的主要概念: 1.镜像:只读模板,类似于安装系统用到的iso文件,对于镜像我们可以自定义,比如在一台机器上安装好lnmp环境,然后打包成为一个镜像,那么后期只需要从仓库中把这个镜像拉下来就可以直接使用lnmp环境了,非常方便

docker镜像、容器

第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角.例如一个ubuntu:14.04的镜像,提供了一个基本的ubuntu:14.04的发行版,当然此 镜像是不包含操作系统Linux内核的. 说到此,可能就需要注意一下,linux内核和ubuntu:14.04Docker镜像的区别了.传统虚拟机安装ubuntu:14.04会包含两部分,第一,某一个L

docker镜像与容器的联系、存储驱动

2.1 docker镜像与容器的联系.存储驱动什么是镜像?简单说,docker镜像是一个不包含Linux内核而又精简的Linux操作系统.镜像从哪里来?Docker hub是由docker公司负责维护的公共注册中心,包含了大量的容器镜像,docker工具默认从这个公共镜像库下载镜像:https://hub.docker.com/explore默认是国外的源,下载会慢,建议配置国内镜像仓库:[[email protected] ~]# vim /etc/docker/daemon.json{"re

Docker入门二:容器管理

Docker入门二:容器管理 LinuxDocker time: 2019-12-3 容器管理 docker常用命令 注: 命令中的CONTAINER,可以是conainer_id,也可以是container name docker system info # 查看docker系统信息 docker container ls -a 查看当前已经创建的container docker container ls: -a 显示所有容器 -q 仅显示ID -s 显示container的文件大小 快速启动

docker镜像与容器(二)

docker镜像与容器 docker改变了什么? 面向产品:产品交付 面向开发:简化环境配置 面向测试:多版本测试 面向运维:环境一致性 面向架构:自动化扩容(微服务) 获取镜像 可以使用 docker pull命令来从仓库获取所需要的镜像. [[email protected]~]# docker pull centos#获取一个centos的镜像 [[email protected]~]# docker images#查看docker的镜像 REPOSITORY          TAG  

Docker背后的容器管理——Libcontainer深度解析

Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcontainer创建容器,并对容器进行生命周期管理. 容器是一个可管理的执行环境,与主机系统共享内核,可与系统中的其他容器进行隔离. 在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎.把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系.随着Docker的不断发