docker学习总结(76)——所有项目的容器化部署的基础镜像都应该选择alpine吗?(代码片段)

科技D人生 科技D人生     2022-12-08     516

关键词:

一、为什么使用更小的基础镜像

首先,要了解这个问题的来源,为什么纠结这种事呢。当然原因在于,容器镜像虽然方便高效,但它有一个最大的问题就是,比较占用空间了。就算你随便把一个 Java 服务构建成镜像,镜像 Image 大小至少都在 100-200M 左右。这个大小当然还好,但我们做项目基本都是使用 CI/CD 自动构建,至少每天或每次 commit 都要触发一次开发/测试环境的全自动构建流程,一个项目一堆镜像服务,长年累月下来,这个空间占用量还是很恐怖的。而且基本上 Docker 的相关教程,一定会讲如何构建空间更小的镜像。使用 Docker 的你,一定也有特别注意到这一点吧。尽量使用适当的方式,构建更小的镜像,这肯定是需要的了。所以问题就来了,基本上很多建议,甚至是 Docker 官方的建议中,都会有一个点,就是使用更小的基础镜像。而在小的基础镜像中,最多的被提及的就是 alpine 了。

二、关于 alpine 镜像

alpine 是一个非常特别的 Linux 发行版本,它本来是用于嵌入式系统中的,大小才 5M 左右,对于嵌入式系统,非常合适。本来并非用于 Linux 服务领域,但随着容器的流行,这个才 5M 大小的 Linux 在 Docker 中流行起来了,因为太小了,非常节省空间。这里就对比下同样属于 Linux 镜像 Ubuntu 与 alpine 的大小。

docker学习总结(76)——所有项目的容器化部署的基础镜像都应该选择alpine吗?(代码片段)

一、为什么使用更小的基础镜像首先,要了解这个问题的来源,为什么纠结这种事呢。当然原因在于,容器镜像虽然方便高效,但它有一个最大的问题就是,比较占用空间了。就算你随便把一个Java服务构建成镜像,镜像Image大小... 查看详情

docker学习总结(56)——docker-compose基础知识温习

一、Docker-compose简介Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有... 查看详情

docker学习总结(60)——docker-compose基础知识回顾总结(代码片段)

一、Docker-Compose的基本介绍Docker-Compose是Docker官方开源的项目,负责实现对Docker容器的快速编排,它是由python编写的。#说下Docker-Compose里的两个基本概念#服务(service):一个应用容器,也就是docker容器,#项目(project):由一组关联的容器组... 查看详情

docker学习总结(60)——docker-compose基础知识回顾总结(代码片段)

一、Docker-Compose的基本介绍Docker-Compose是Docker官方开源的项目,负责实现对Docker容器的快速编排,它是由python编写的。#说下Docker-Compose里的两个基本概念#服务(service):一个应用容器,也就是docker容器,#项目(project):由一组关联的容器组... 查看详情

docker学习总结(69)——不用docker如何构建容器

Docker有什么问题?Docker在armhf、arm64和x86_64平台上运行良好。DockerCLI不仅用于构建/发布/运行镜像,多年来它还背负了太多的东西,现在还与DockerSwarm和DockerEE特性捆绑在一起。Docker之外的选择有一些项目试图让“docker”回到它原... 查看详情

docker学习总结(61)——dockerdocker-composedockerswarmk8s之间的区别

DockerDocker这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。Docker-ComposeDocker-Compos... 查看详情

docker学习笔记总结(代码片段)

文章目录1.卸载docker服务步骤(实用!!)2.docker私有库3.容器数据卷的使用4.容器卷和主机互通互联5.容器卷ro和rw读写规则6.卷的继承和共享7.docker安装tomcat8.docker安装mysql8.1运行mysql容器8.2dockermysql容器卷配置(非常重要)8.3docke... 查看详情

docker学习总结一

什么是dockerDocker是基于go语言实现的开源容器项目,诞生于2013年初,最初发起者dotCloud公司。docker虚拟化的好处快速交付和部署更高效的资源利用更轻松的歉意和扩展更简单的更新管理docker与虚拟化docker是基于操作系统虚拟化,... 查看详情

docker学习总结(68)——docker数据卷相关知识总结

前言在生产环境中使用Docker,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束)或者需要在多个容器之间进行数据共享,需要将数据从宿主机挂载到容器中,这就会涉及容器的数据管理操作。Doc... 查看详情

docker学习笔记总结(代码片段)

文章目录1.卸载docker服务步骤(实用!!)2.docker私有库3.容器数据卷的使用4.容器卷和主机互通互联5.容器卷ro和rw读写规则6.卷的继承和共享7.docker安装tomcat8.docker安装mysql8.1运行mysql容器8.2dockermysql容器卷配置(非常重要)8.3docke... 查看详情

docker学习笔记总结(代码片段)

文章目录1.docker简介2.docker的三个组成3.docker的工作原理4.centos系统上安装docker5.阿里云镜像加速器6.dockerrun命令执行流程7.docker命令7.1帮助启动类命令7.2镜像命令7.3容器命令7.3.1dockerrun命令详解7.3.2dockerps命令详解7.3.3容器服务的一... 查看详情

docker学习6-docker-compose容器集群编排(代码片段)

...时,就很难记住了,所有需要一个配置文件,负责实现对Docker容器集群的快速编排。docker-compose简介Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Dock 查看详情

docker学习总结(61)——dockerdocker-composedockerswarmk8s之间的区别

DockerDocker这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。Docker-ComposeDocker-Compos... 查看详情

docker学习总结六

...容器:使用特定容器维护数据卷数据卷1.创建数据卷使用dockerrun,用-v标记可以在容器内创建一个数据卷。多次重复使用-v标记可以在容器内创建多个数据卷下面使用lxc/webapp镜像创建一个容器,并创建一个数据卷挂载到容器的webap... 查看详情

docker学习总结七

端口映射实现访问容器从外部访问容器使用-Pdocker会随机映射一个没有占用的端口(一般都过万)$dockerrun-d-Pubuntupythonapp.py$dockerps-l可以查看映射的端口$dockerlogs-f容器ID可以查看应用信息映射指定端口$dockerrun-d-p5000:5000-p3000:80ubuntup... 查看详情

docker学习总结(74)——dockerswarm全面总结(代码片段)

一、前言Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm;DockerSwarm和DockerCompose一样,都是Docker官方容器编排项目,但不同的是,Dock... 查看详情

docker学习总结(62)——docker-compose.yml详细说明

...主要配制 1、version定义了版本信息,这个定义关乎与docker的兼容性,具体为Compose文件格式有3个版本,分别为1,2.x和3.x,目前主流的为3.x其支持docker1.13.0及其以上的版本。2、services定义了服务的配置信息,包含应用于该服务启... 查看详情

docker入门学习,有具体案例项目

...ice-mapper-persistent-datalvm2yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repoyuminstalldocker-ce-ysystemctlstartdockersystemctlenabledocker二.介绍:工作目录:/var/lib/docker三.基本用法dockerimages查看镜像列表dockerload<docker_images/ngin... 查看详情