Docker:第一章:Docker入门和深入理解

一、Docker 入门

1.1、软件开发面临的问题

我们的程序首先在开发环境开发,然后需要部署到测试环境交给测试人员测试, 最后需要由运维人员部署到生产环境正式运行,在这个过程中任何一个环境如果和其他环境不一致,则会出现开发阶段能运行的程序在测试阶段或生产阶段不能够正常运行,这就是软件跨环境迁移问题。

在这里插入图片描述

JavaEE 程序依赖的基础环境:JDK、tomcat、数据库、中间件、操作系统、配置文件(代码配置、JDK 配置、tomcat 配置、操作系统配置)…

Docker 可以让开发者构建应用程序时,将应用程序与其所依赖的环境一起打包到一个容器中,然后交付整个环境而不仅仅是代码。这样一个带环境的程序包就是一个容器容器可以解决软件跨环境迁移的问题

在这里插入图片描述

1.2、docker

在这里插入图片描述

在这里插入图片描述

Docker 借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker 将这个模型运用到自己的设计中,唯一不同的是:集装箱运输货物,而 Docker 运输软件。

Docker 是基于 Go 语言实现的开源容器引擎,供开发人员和系统管理员 使用容器构建,运行和共享应用程序的平台。使用容器来部署应用程序称为容器化。容器并不是新事物,但用于轻松部署应用程序的容器却是新事物。简而言之,Docker 就是为了解决开发、运维、测试人员环境不一致、简化环境搭建、迁移、部署而提出的:容器化技术

怎么理解 Docker 是容器化技术呢?

在这里插入图片描述

容器化技术的特点:

标准化:每个容器都是标准化、可移植的,因为他们直接运行在宿主机的内核上隔离:容器互相隔离,互不干扰,独立运行

高性能:容器性能开销极低,可以实现分钟级甚至秒级的部署和启动

版本:CE(Community Edition:社区版)和 EE(Enterprise Edition:企业版)

1.3、应用场景及理念

微服务领域:有助于 Microservices 的落地和部署

隔离应用: 充分利用物理机资源,同时能够整合服务器资源(隔离应用、在同一硬件上运行更多工作负载)

快速、一致地交付您的应用程序:提高开发效率,测试效率,部署效率,有利于

DevOps 的落地,CICD

Docker 理念:Build,Ship and Run Any App,Anywhere,在任何地方构建、发布并运行任何应用程序(一次封装,到处运行)

1.4、Docker架构

在这里插入图片描述

docker 由三部分组成:Client 客户端、docker 主机、Registry 镜像仓库服务器

Ø docker 主机:

docker daemon:docker 安装后,会以后台运行、守护进程的形式存在

images 镜像: 镜像可以用来创建 docker 容器,一个镜像可以创建很多容器

containers: 镜像和容器的关系类似面向对象设计中的类和对象, 镜像是容器的模板,容器是基于镜像创建出来的。容器可以被创建、启动、停止、删除等等。

注意:Docker 镜像(Image)就是一个只读的模板!即不可以修改镜像。

Ø Registry:镜像注册服务器 https://hub.docker.com

一个 docker Registry(仓库注册服务器) 中可以包含多个 Repository(仓库);每个仓库可以包含多个标签/版本(Tag);每个标签对应一个镜像。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式,公开仓库就是

docker 官方仓库,私有仓库是自己搭建的 docker 私服

Ø Client:docker 终端

安装好 docker 中,同时包含了 docker 客户端,客户端负责执行 docker 命令, 发送给 docker 主机中的 docker 守护进程,例如:从仓库下载镜像,通过镜像创建 容 器 等 等 。

1.5 、 Docker 组 件 or Base Concepts

1.5.1、What is Image?

A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.

镜像是构建在 Docker 的基石。用户基于镜像来运行自己的容器,也可以将镜像当做容器的”源代码”。镜像是由一系列指令一步一步 构建出来。Docker 镜像

(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

1.5.2、Where is Images?

在这里插入图片描述

docker pull 在哪拉取的镜像? 默认是在 hub.docker.com

docker pull tomcat 拉取的版本是?默认是最新的版本,可以在后面指定版本

1.5.3、What is Container?

在这里插入图片描述

A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.

Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

在这里插入图片描述

官方文档参考: https://www.docker.com/resources/what-container

1.5.4 、 Relation between image and container

Container images become containers at runtime and in the case of Docker containers- images become containers when they run on Docker Engine.

在这里插入图片描述

1.5.5 、View from docs

A container is launched by running an image. An image is an executable package that includes everything needed to run an application–the code, a runtime, libraries, environment variables, and configuration files. A container is a runtime instance of an image–what the image becomes in memory when executed (that is, an image with state, or a user process). You can see a list of your running containers with the command, docker ps, just as you would in Linux.

1.5.6 、Repository 与 Registry(仓库注册中心)

仓库(Repository)是集中存放镜像文件的场所。仓库(Repository)和仓库注册中心(Registry)是有区别的。仓库注册中心服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。标签就是对应软件的各个版本。

仓库注册中心分为公开仓库(Public)注册中心和私有仓库(Private)注册中心 两 种 形 式 。 最 大 的 公 开 仓 库 注 册 中 心 是 Docker

Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库注册中心包括阿里云 、网易云等

在这里插入图片描述

1.6 、CentOS7 安装 docker

官 网 : [http://www.docker.com]
安装手册:https://docs.docker.com/install/linux/docker-ce/centos(CE-社区版)

1.6.1 、安装需要的软件包

yum-utils 提 供 了 yum-config-manager 相 关 功能,device-mapper-persistent-data 和 lvm2 是设备映射器驱动程序所需要的。

yum install -y yum-utils device-mapper-persistent-data lvm2

1.6.2 、设置 docker 下载镜像

docker 官方下载地址:

yum-config-manager \

--add-repo https://download.docker.com/linux/centos/docker-ce.repo

推荐阿里云下载地址(推荐)

yum-config-manager \

--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.6.3 、更新 yum 软件包索引

我们在更新或配置 yum 源之后,通常都会使用 yum makecache 生成缓存,这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度

yum makecache fast

1.6.4 、安装 DOCKER CE

yum install -y docker-ce docker-ce-cli containerd.io 

如果报错,重新执行安装一次

1.6.5、启动 docker

systemctl start docker
systemctl enable docker	#设置开机自启动

1.6.6、版本验证

docker      version

1.7、docker卸载

systemctl stop docker yum remove -y docker-ce rm -rf /var/lib/docker

1.8、容器镜像服务

1.8.1 、什么是容器镜像服务

从 docker 的官方镜像仓库服务器上下载 docker 的镜像速度很慢,因此我们可以配置国内的容器镜像服务,提升 docker 镜像的下载速度。

如:阿里云 腾讯云 网易云

1.8.2 、登录阿里云

1.8.3 、开通容器镜像服务

搜索“容器镜像服务”

在这里插入图片描述

1.8.4 、获取加速地址

在这里插入图片描述

1.9 、hello-world

1.9.1 、运行 hello-world 程序

docker run hello-world: 以镜像为模板创建 docker 容器并运行

在这里插入图片描述

1.9.2 、运行流程如下

在这里插入图片描述

本人亲自推荐阅读推荐

Docker 极简入门指南:
https://gitbook.cn/gitchat/column/5a13be9775462408e0da8d9d

深入浅出 Docker 技术栈实践:
https://gitbook.cn/gitchat/column/59e464726958416d85ae9207

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值