docker入门讲解

本文详细介绍了Docker的核心概念、安装步骤、镜像与容器管理、数据持久化、网络配置、Dockerfile定制、企业级镜像仓库Harbor的使用,以及结合Prometheus和Grafana的监控系统搭建,最后探讨了基于Docker的Jenkins CI平台的构建。内容涵盖了Docker的各个方面,适合初学者和进阶者深入理解Docker。
摘要由CSDN通过智能技术生成

目录

第 1 章 Docker核心概念与安装

为什么使用容器?

Docker是什么

Docker设计目标

Docker基本组成

容器 vs 虚拟机

Docker应用场景

Linux 安装 Docker

第 2 章 Docker镜像管理

镜像是什么

镜像从哪里来?

镜像与容器联系

镜像常用管理命令

镜像存储核心技术:联合文件系统(UnionFS)

镜像存储核心技术:写时复制(COW)

第 3 章 Docker容器管理

创建容器常用选项

容器资源限制

管理容器常用命令

容器实现核心技术:Namespace

容器实现核心技术:CGroups

Docker核心组件之间关系

第 4 章 容器数据持久化

将数据从宿主机挂载到容器中的三种方式

Volume

Bind Mounts

第 5 章 Docker容器网络

四种网络模式

Docker网络模型

容器网络访问原理

容器网络实现核心技术:Iptables

跨主机网络:实现Docker主机容器通信

第 6 章 Dockerfile 定制容器镜像

Dockerfile介绍

Dockerfile常用指令

docker build构建镜像

CMD与ENTRYPOINT区别

前端项目镜像构建与部署:Nginx

PHP项目镜像构建:PHP

案例:容器化搭建个人博客系统

JAVA项目镜像构建:Tomcat

JAVA微服务镜像构建:Jar

编写Dockerfile最佳实践

第 7 章 Harbor企业级镜像仓库

Harbor 概述

Harbor HTTP/HTTPS 搭建与使用

Harbor 主从复制

 Harbor 运维维护

第 8 章 Prometheus+Grafana监控Docker主机

监控系统概述

监控系统部署

Grafana展示

监控多Docker主机

第 9 章 基于Docker构建企业Jenkins CI平台

CI/CD 概述

CI 工作流程设计

CI/CD 收益


第 1 章 Docker核心概念与安装

  1. 为什么要用容器?
  2. Docker是什么
  3. Docker设计目标
  4. Docker基本组成
  5. 容器 vs 虚拟机
  6. Docker应用场景
  7. Linux 安装 Docker

为什么使用容器?

1. 上线流程繁琐
开发->测试->申请资源->审批->部署->测试等环节
2. 资源利用率低
普遍服务器利用率低,造成过多浪费
3. 扩容/缩容不及时
业务高峰期扩容流程繁琐,上线不及时
4. 服务器环境臃肿
服务器越来越臃肿,对维护、迁移带来困难
5. 环境不一致性

Docker是什么

  • 使用最广泛的开源容器引擎
  • 一种操作系统级的虚拟化技术
  • 依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制
  • 一个简单的应用程序打包工具

Docker设计目标

  • 提供简单的应用程序打包工具
  • 开发人员和运维人员职责逻辑分离
  • 多环境保持一致性

Docker基本组成

容器 vs 虚拟机

Docker应用场景

  • 应用程序打包和发布
  • 应用程序隔离
  • 持续集成
  • 部署微服务
  • 快速搭建测试环境
  • 提供PaaS产品(平台即服务)

Linux 安装 Docker

Docker版本:
  • 社区版(Community Edition,CE)
  • 企业版(Enterprise Edition,EE)
支持平台:
  • Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE和Ubuntu)
  • Mac
  • Windows
# 安装依赖包
yum install -y yum-utils 
# 添加Docker软件包源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker CE
yum install -y docker-ce
# 启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker
https://docs.docker.com/engine/install/centos/
官方文档:https://docs.docker.com
阿里云源:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第 2 章 Docker镜像管理

  1. 什么是镜像
  2. 镜像从哪里来?
  3. 镜像与容器联系
  4. 镜像常用管理命令
  5. 镜像存储核心技术:联合文件系统(UnionFS)
  6. 镜像存储核心技术:写时复制(COW)

镜像是什么

镜像是什么?
一个分层存储的文件,不是一个单一的文件
一个软件的环境
一个镜像可以创建N个容器
一种标准化的交付
一个不包含Linux内核而又精简的Linux操作系统

镜像从哪里来?

Docker Hub是由Docker公司负责维护的公共镜像仓库,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。
地址:https://hub.docker.com
配置镜像加速器:
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}

镜像与容器联系

镜像:类似于虚拟机镜像,一个只读模板
容器:通过镜像创建的运行实例

镜像常用管理命令

镜像存储核心技术:联合文件系统(UnionFS)

镜像怎么高效存储?
难道像虚拟机那样一个容器对应一个独立的镜像文件?这样对于密集
型容器,磁盘占用率太大!
答:引入联合文件系统,将镜像多层文件联合挂载到容器文件系统

镜像存储核心技术:写时复制(COW)

了解联合文件系统后,我们知道,镜像是只读的,类似共享形式让多
个容器使用,如果要在容器里修改文件,即镜像里的文件,那该怎么
办呢?
答:引入写时复制(copy-on-write),需要修改文件操作时,会先
从镜像里把要写的文件复制到自己的文件系统中进行修改。

 优化建议

  • 使用SSD固态硬盘
  • 使用卷作为频繁读写文件的工作目录,绕过存储驱动,减少抽象的开销

第 3 章 Docker容器管理

  1. 创建容器常用选项
  2. 容器资源限制
  3. 管理容器常用命令
  4. 容器实现核心技术:Namespace
  5. 容器实现核心技术:CGroups
  6. Docker核心组件之间关系

创建容器常用选项

容器资源限制

 示例:

内存限额:
允许容器最多使用500M内存和100M的Swap,并禁用 OOM Killer:
docker run -d --name nginx03 --memory="500m" --memory-swap=“600m" --oom-kill-d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主主主主公

你的鼓励将大动力作的最是我创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值