创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜
前言
运维之基础——Linux。我是一个即将毕业的大学生,超超。如果你也在学习Linux,不妨跟着萌新超超一起学习Linux,拿下Linux,一起加油,共同努力,拿到理想offer!
系列文章
Linux进阶 | Docker部署nginx的web服务,VOLUME的使用详解,实现数据持久化!
Linux进阶 | 2万字总结最详细的Docker的安装、底层隔离机制和简单使用!建议收藏,持续更新❤
Linux | 详解系统监控和常用命令(top free dstat)
Linux | 超超讲解SSH的原理与SSH的实现!建议收藏❤
概述
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。本期内容为Docker第三期,通过本期内容将会掌握docker的镜像制作。
目录
练习一:以python:3.9镜像为基础创建镜像,并以此启动容器并连接到redis
超超Docker学习思维导图
Docker思维导图将持续更新,欢迎大家订阅Linux栏目!
镜像的概念
Base镜像
Base 镜像有两层含义:
1. 不依赖其他镜像,从 scratch 构建。
2. 其他镜像可以之为基础进行扩展。
Base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debian, CentOS 等,以 CentOS 为例学习 base 镜像包含哪些内容。
[root@docker ~]# docker images centos
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 8652b9f0cb4c 9 months ago 204MB
使用docker pull centos下载最新版本的Centos镜像也就207M左右,而我们平时下载一个原生的centos镜像都是4G。
容器只能使用 Host 的 kernel,并且不能修改。所有容器都共用 host 的 kernel,在容器中没办法对 kernel 升级。如果容器对 kernel 版本有要求(比如应用只能在某个 kernel 版本下运行),则不建议用容器,这种场景虚拟机可能更合适。
Bootfs与rootfs
Bootfs:内核空间是 kernel,Linux 刚启动时会加载 bootfs 文件系统,之后 bootfs 会被卸载掉。
rootfs:容器内部的操作系统,用户空间的文件系统是 rootfs,包含我们熟悉的 /dev, /proc, /bin 等目录。
镜像的分层结构
Docker 支持通过扩展现有镜像,创建新的镜像。实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的。
镜像的制作
制作前的疑问
镜像是什么?
答案:镜像由程序代码、基础操作系统、基础软件组成。
镜像是一个文件,里面包含了程序代码、基础操作系统、基础软件。
为什么要制作镜像,docker hub上不是有很多镜像吗?
答案:
1.不能满足我们的需要
2.不够安全,有安全隐患
谁去制作镜像?
答案: 一般都是开发人员去制作
也可以是运维人员去制作、权利非常大的工作人员。
镜像里有什么?
1.base 镜像 --》基础镜像--》提供操作系统,其他软件最基本的功能
基础镜像里的操作系统:Ubuntu、debian、centos等
Dockerfile
如果你想要从一个基础镜像开始建立一个自定义镜像,可以选择一步一步进行构建,也可以选择写一个配置文件,然后一条命令(docker build)完成构建,显然配置文件的方式可以更好地应对需求的变更,这个配置文件就是Dockerfile。
那DockerFile是什么?
Dockerfile: 用于描述镜像的生成规则(配置文件),Dockerfile中的每一条命令,