docker镜像制作常用官方基础系统镜像的选择(代码片段)

白-胖-子 白-胖-子     2022-12-10     327

关键词:

Docker 镜像

为了满足业务需求,我们通常需要基于官方Linux系统镜像制作私有镜像
选择合适的的Docker官方基础Linux系统镜像成为了首先需要考虑的事情

  • Docker镜像是只读的docker容器模板,封装着启动docker容器所需的文件系统结构和系统内部环境
  • Docker镜像是启动docker容器的基础,运行容器必须在相应的docker基础至上
  • 基于同一个docker镜像可以启动多个不同的docker容器

配置镜像仓库加速

  • 官方镜像仓库在国外,因为你懂的伟大的火墙,所以慢得很
  • 配置国内镜像仓库加速
tee /etc/docker/daemon.json <<-'EOF'

"registry-mirrors": ["https://9916w1ow.mirror.aliyuncs.com","https://reg-mirror.qiniu.com/","https://8otyy3fq.mirror.aliyuncs.com"]

EOF

常用docker官方镜像

Ubuntu

  • 每两年的 4 ⽉份,都会推出⼀个⻓期⽀持版本(LTS),其⽀持期⻓达五年,
  • ⽽⾮ LTS 版本的⽀持期通常只有半年。
  • 我们在选择Ubuntu发行版本时要选择开头是偶数且后缀为04的版本,例如16.04,18.04,20.04,22.04
docker pull ubuntu:18.04
docker pull ubuntu:20.04
root@u18a:~# docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
e7ae86ffe2df: Pull complete 
Digest: sha256:3b8692dc4474d4f6043fae285676699361792ce1828e22b1b57367b5c05457e3
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
root@u18a:~# docker pull ubuntu:20.04
20.04: Pulling from library/ubuntu
a31c7b29f4ad: Pull complete 
Digest: sha256:b3e2e47d016c08b3396b5ebe06ab0b711c34e7f37b98c9d37abe794b71cea0a2
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04
root@u18a:~# docker images | grep ubuntu
ubuntu                          20.04               c29284518f49        8 days ago          72.8MB
ubuntu                          18.04               fbf60236a8e3        8 days ago          63.1MB

CentOS

  • 2020年12月8日IBM宣布将惯例支持到2029年CentOS 8,提前在2年内就终结,CentOS已死
  • 生产环境我们常用CentOS6、7、8的最新稳定版,例如:8.3.2011,7.9.2009,6.10
docker pull centos:centos8.3.2011
docker pull centos:centos7.9.2009
docker pull centos:centos6.10
root@u18a:~# docker pull centos:centos7.9.2009
centos7.9.2009: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e
Status: Downloaded newer image for centos:centos7.9.2009
docker.io/library/centos:centos7.9.2009
root@u18a:~# docker pull centos:centos8.3.2011
centos8.3.2011: Pulling from library/centos
7a0437f04f83: Pull complete 
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:centos8.3.2011
docker.io/library/centos:centos8.3.2011
root@u18a:~# docker images | grep centos
centos                          centos8.3.2011      300e315adb2f        7 months ago        209MB
centos                          centos7.9.2009      8652b9f0cb4c        8 months ago        204MB

Debian

  • Debian作为适合于服务器的操作系统,它比Ubuntu要稳定得多。
  • debian整个系统基础核心非常小,不仅稳定,而且占用硬盘空间小,占用内存小。
  • debian本身就很小,当作容器时再刨除了内核就更小了
  • Debian 大概2年发布一次新稳定版。稳定发行版本有三年的完整支持以及额外两年的长期支持。
  • 目前常用的Debian版本有:bullseye,buster,stretch,
Debian 11("bullseye") — 即将上位的"稳定(stable)"版 2021
Debian 10("buster") — 当前的"稳定(stable)"版 2019
Debian 9("stretch") — "旧的稳定(oldstable)"版,现有长期支持 2017
Debian 8("jessie") — "更旧的稳定(oldoldstable)"版,马上就淘汰了 2015
docker pull debian:bullseye
docker pull debian:buster
docker pull debian:stretch

Alpine

  • Alpine: 一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,
  • Alpine 采用了 musllibc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,只有5M左右大小
  • 目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境。
  • 使用 Alpine做为基础镜像环境,下载速度加快,镜像安全性提高,主机之间的切换更便捷,占用更少磁盘空间。
  • Alpine Linux每年 5 月和 11 月更新小版本(Branch)。稳定版支持 2 年,社区社区版支持直到下一个稳定版本。
  • 最新大版本v3.0(2014-06-04)发布至今已经到了v3.14(2021-06-15)
  • 由于官方已经用Alpine封装基础镜像了,不建议自己使用Alpine多dockerfile,除非你比官方写的还好
docker pull alpine:latest
docker pull alpine:edge

docker手动制作系统镜像

docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,已统计DockerHub超过30%的官方镜像包含高危漏洞。此外,由于网络等原因也会造成dockerpull下载镜像的速度很慢。基于这种情况,我们可以手动定制docker系统镜像。以下... 查看详情

docker镜像制作和管理(代码片段)

一、Docker镜像说明二、基于容器通过dockercommit手动制作镜像1、基于容器手动制作镜像步骤1、下载官方系统镜像2、基于官方基础镜像启动容器,并进入容器3、在容器中进行配置操作  3.1、安装基础工具  3.2、配置运行环境... 查看详情

docker容器学习梳理--手动制作系统镜像

docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,已统计DockerHub超过30%的官方镜像包含高危漏洞。此外,由于网络等原因也会造成dockerpull下载镜像的速度很慢。基于这种情况,我们可以手动定制docker系统镜像。以下... 查看详情

docker基础镜像包制作

参考技术A通过docker镜像发布服务已经是很多厂商的共识,本文并不阐述docker的优势,而是介绍发布docker镜像时可以优化的部分每个公司都有一些规范,要求系统运行的环境版本、配置等,这些既是规范又是每个工程的共性,如... 查看详情

docker镜像管理基础(代码片段)

docker镜像管理基础文章目录docker镜像管理基础镜像的概念docker镜像层docker存储驱动AUFSOverlayFSDeviceMapperdockerregistrydocker镜像的制作DockerHubdocker镜像的获取镜像的生成基于容器制作镜像镜像的概念镜像可以理解为应用程序的集装箱&#x... 查看详情

docker镜像管理基础(代码片段)

docker镜像管理基础文章目录docker镜像管理基础镜像的概念docker镜像层docker存储驱动AUFSOverlayFSDeviceMapperdockerregistrydocker镜像的制作DockerHubdocker镜像的获取镜像的生成基于容器制作镜像镜像的概念镜像可以理解为应用程序的集装箱&#x... 查看详情

docker随笔:禅道docker镜像的制作(代码片段)

文章目录1说明1.1禅道官方有docker制作镜像说明1.2禅道官方有docker运行禅道镜像说明1.3docker安装源码下载1.4参考文章2制作2.1基础镜像确定2.2Dockerfile制定2.3docker-entrypoint.sh制定2.4制作3运行3.1直接使用dockerrun3.2使用docker-compose4上传doc... 查看详情

docker镜像

四、Docker镜像1、Docker镜像是什么?  容器运行的基础,一层一层的文件系统,运行容器所需的数据2、镜像组织结构image里面是一层层文件系统,叫做UnionFS(联合文件系统)。这一个链接就够了3、镜像写时复制COW  ... 查看详情

docker制作基础镜像

...-owner--exclude=/proc--exclude=/sys-cvfUbuntu17.04.tar/3.在一台可运行docker的机器上用dockerimport命令转换成dockerimageca 查看详情

制作django项目的docker镜像(代码片段)

...,必须要有个基础镜像来当作我们项目运行的基础环境。Dockerfile#基础镜像为centos,版本为7,build镜像时会自动下载FROMcentos:7#制作者信息MAINTAINERxxxxx 查看详情

docker镜像管理基础与基于容器的镜像制作示例(代码片段)

一、Docker镜像  Docker镜像是启动Docker容器的一个非常重要的组件。Docker各组件之间的关系如图:  Docker镜像含有启动容器所需要的文件系统及其内容,因此Docker镜像用于创建并启动容器。并且Docker镜像是采用分层构建,联合... 查看详情

47-docker-dockerfile镜像创建自动化生产案例

...境安装服务和配置服务放业务程序代码提交为一个新镜像dockercommit基于自己的的镜像创建容器并测试访问注意:手动制作镜像的方式显示全部的容器制作过程比较困难,且需要前台执行方式添加命令不支持自动化,生产不实用作... 查看详情

dockerfile常用命令(代码片段)

前言Dockerfile是Docker用来构建镜像的文本文件,它包含了构建镜像的所有的指令以及对应的说明,有自定义的指令和格式,可以通过dockerbuild命令从Dockerfile中构建镜像。Dockerfile制作原则容器与Dockerfile制作相关的规则如下... 查看详情

dockerfile常用命令(代码片段)

前言Dockerfile是Docker用来构建镜像的文本文件,它包含了构建镜像的所有的指令以及对应的说明,有自定义的指令和格式,可以通过dockerbuild命令从Dockerfile中构建镜像。Dockerfile制作原则容器与Dockerfile制作相关的规则如下... 查看详情

dockerfile常用命令(代码片段)

前言Dockerfile是Docker用来构建镜像的文本文件,它包含了构建镜像的所有的指令以及对应的说明,有自定义的指令和格式,可以通过dockerbuild命令从Dockerfile中构建镜像。Dockerfile制作原则容器与Dockerfile制作相关的规则如下... 查看详情

docker镜像加速器

Docker镜像加速器我们使用Docker的第一步,应该是获取一个官方的镜像,例如mysql、wordpress,基于这些基础镜像我们可以开发自己个性化的应用。我们可以使用Docker命令行工具来下载官方镜像。但是因为网络原因,我们下载一个300M... 查看详情

跟我一起学docker--镜像的常用操作

1.获取镜像:命令:    dockerpull<域名>//:说明:镜像是Docker运行容器的前提。用户可以使用dockerpull命令从网络上下载镜像。对于镜像来说,如果不显式地指定tag,则默认会选择latest标签,即下载仓库中最新版本... 查看详情

docker基础命令,常用操作(代码片段)

docker基础命令使用docker镜像获取镜像从dockerregistry获取镜像的命令是dockerpull。命令格式是:dockerpull[选项][dockerregistry地址]仓库名:标签dockerregister地址:地址的格式一般是域名:端口,默认地址是dockerhub仓库名:仓库名是两段格式... 查看详情