美文网首页
Docker简介,应用场景,Docker镜像使用命令

Docker简介,应用场景,Docker镜像使用命令

作者: Margolu | 来源:发表于2021-02-20 17:19 被阅读0次

    一.简介

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

    二.应用场景

    1.Web 应用的自动化打包和发布。

    2.自动化测试和持续集成、发布。

    3.在服务型环境中部署和调整数据库或其他的后台应用。

    4.从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

    三.优点

    Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

    1.快速,一致地交付您的应用程序

    2.响应式部署和扩展

    3.在同一硬件上运行更多工作负载

    四.Docker架构

    Docker 包括三个基本概念:

    镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。

    容器(Container):容器是独立运行的一个或一组应用,是镜像运行时的实体。镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

    仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

    Docker 容器通过 Docker 镜像来创建。

    容器与镜像的关系类似于面向对象编程中的对象与类。

    五.Docker镜像使用

    1.列出本地主机上的镜像列表

    docker images

    各个选项说明:

    REPOSITORY:表示镜像的仓库源

    TAG:镜像的标签,同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

    IMAGE ID:镜像ID

    CREATED:镜像创建时间

    SIZE:镜像大小

    2.查找镜像

    docker search XXX

    NAME: 镜像仓库源的名称

    DESCRIPTION: 镜像的描述

    OFFICIAL: 是否 docker 官方发布

    stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

    AUTOMATED: 自动构建。

    3.从仓库下载,获取一个新的镜像

    docker pull XXX

    4.删除镜像

    docker rmi XXX

    5.创建镜像

    当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

    (1)从已经创建的容器中更新镜像,并且提交这个镜像

    (2)使用 Dockerfile 指令来创建一个新的镜像

    5.1更新镜像

    (1)使用版本为20.04的基础镜像ubuntu镜像来创建一个容器

    docker run -it ubuntu:20.04 /bin/bash

    参数说明:

    -i: 交互式操作。

    -t: 终端。

    ubuntu:20.04: 这是指用 ubuntu 20.04 版本镜像为基础来启动容器。

    /bin/bash:放在镜像名后的是命令,希望有个交互式 Shell,因此用的是 /bin/bash。

    如果不指定一个镜像的版本标签,例如只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。

    (2)在运行的容器内使用 apt-get update 命令进行更新。

    (3)在完成操作之后,输入 exit 命令来退出这个容器。

    (4)docker commit 来提交容器副本。

    各个参数说明:

    -m: 提交的描述信息

    -a: 指定镜像作者

    3a299d3e9ea4:容器 ID

    lulu/ubuntu:new: 指定要创建的目标镜像名

    (5)使用新镜像 lulu/ubuntu:new 来启动一个容器

    5.2构建镜像

    使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建新镜像。

    每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

    第一条FROM,指定使用哪个镜像源

    RUN 指令告诉docker 在镜像内执行命令,安装了什么。然后,我们使用 Dockerfile 文件,通过 docker build 命令来执行dockerfile文件中的命令构建一个镜像。

    参数说明:

    -t :指定要创建的目标镜像名

    . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

    使用docker images 查看创建的镜像已经在列表中存在,镜像ID为 19a96a0b9bdd   

    6.设置镜像标签,为镜像添加一个新的标签

    docker tag 镜像ID 镜像源名(repository name):新的标签名(tag)

    7.导出镜像,将指定镜像保存成tar归档文件

    docker save -o 文件名.tar 镜像名

    8.导入镜像

    docker load --input 文件路径/文件名.tar

    相关文章

      网友评论

          本文标题:Docker简介,应用场景,Docker镜像使用命令

          本文链接:https://www.haomeiwen.com/subject/fnatfltx.html