type
status
date
slug
summary
tags
category
icon
password
 
😀
这里写文章的前言: docker容器算是重要知识点了,写写写!
 

📝 主旨内容

1 为啥要用Docker

1.1 环境配置难题

  • 软件开发最大的麻烦事之一,就是环境配置,用户计算机环境各不相同,配置 也要根据环境相应变化。
  • 操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行,比 如开发Java应用,计算机必须配置JDK。
  • 如果某些依赖过时与当前环境不兼容,那更是一场灾难。

1.2 应用部署的问题

同样在应用部署时,由于组件较多,运行环境复杂,也会遇到类似问题: 将不同的软件集成起来的过程中有很多不可控的风险,由于依赖关系复杂,容 易出现兼容性问题 由于开发、测试、生产环境的差异,一旦需要重新迁移服务器或者重新部署一 套环境,还将重新执行一遍
notion image

1.3 问问AI?

Docker的使用主要是为了解决软件开发和应用部署中的环境配置问题和应用部署的问题。在不同计算机环境中,软件的配置依赖各不相同,而Docker能够提供可移植性和一致性。此外,Docker还能够将不同的软件集成起来,避免依赖关系复杂和兼容性问题。换句话说,Docker的使用能够简化环境配置和应用部署的过程,提高软件开发和应用部署的效率。 ——-来自NotionAI

2 Docker是啥?

notion image
notion image
notion image
来自B站课程PPT

3 Docker组成🌟

3.1. 镜像

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件, 才能生成 Docker 容器。 image 文件可以看作是容器的模板,除了提供容器运行时所需的程序、库、资 源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、 环境变量、用户等)。 Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多 个同时运行的容器实例。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。

3.2. 容器

image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。
image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以 使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件, 而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不 是从零开始制作。
为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的 官方仓库 Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制 作的 image 文件也是可以的。

3.3. 仓库

镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它 服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务, Docker Registry 就是这样的服务。
一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包 含多个 标签(Tag);每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软 件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软 件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。
以 Ubuntu 镜像 为例,ubuntu 是仓库的名字,其内包含有不同的版本标签, 如,16.04, 18.04。我们可以通过 ubuntu:16.04,或者 ubuntu:18.04 来具体 指定所需哪个版本的镜像。如果忽略了标签,比如 ubuntu,那将视为 ubuntu:latest。
 
DockerHub:DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。国内也有类似于DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像库等。

3.4. 架构

客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或 远程向服务端发送指令。 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
notion image

4 安装安装!

  1. 卸载旧版本Docker(可选)
  1. 安装yum工具
  1. 更新yum本地软件源
  1. 安装Docker
  1. Docker使用中会涉及到各种端口,为了方便使用最好关闭防火墙~
  1. 查看docker版本
  1. 启动Docker
 

📎 参考文章

 
😣
总结
本来打算把pull啥的基本操作都写完,发现太多了,后面再写吧zzzzz
 
失败总是贯穿人生始终🎆删除链表元素