首页 » docker » 正文

自定义创建docker基础镜像的几种方式

一.使用debootstrap创建docker基础镜像

debootstrap是Debian GNU / Linux引导程序,它允许您将Debian基本系统(如Debian或Ubuntu)安装到当前运行的系统的目录中。这个配置是关于如何在CentOS / RHEL上进行debbootstrap的入门指南。 debootstrap包在标准CentOS存储库中不可用。为了使它可用,我们首先需要启用EPEL存储库。下载EPEL存储库包:

安装debootstrap

确认启用EPEL存储库:

现在,我们只需使用yum安装debootstrap:

至于Ubuntu下如何安装

制作自定义的docker镜像

先把镜像拉到本地并安装一些必要的软件

注意这里的镜像源地址不要带https,否则有可能会报错:

E: Couldn’t find these debs: apt-transport-https

国内的其他镜像源

中科大:http://mirrors.ustc.edu.cn/debian
网易:http://mirrors.163.com/
清华:https://mirror.tuna.tsinghua.edu.cn/

在容器中创建SSH服务,并用宿主机登录

先退出并删除之前创建的容器(加了–rm参数,停止容器之后会自动删除容器)
新创建一个容器

进入该容器

这里的sshd服务已经开着了, 我们创建一些ssh key,并修改一下sshd的配置

我们这里再开一个终端,从宿主机连接容器中的sshd服务
先ping一下,ping通了才能继续下面的操作

这里我输入了密码123

至此,在容器中创建SSH服务成功。

我们commit一下这个带sshd的镜像

允许外部SSH连接容器

假设以上演示的宿主机是一台OS为Ubuntu 18.04 LTS的虚拟机,IP为:192.168.16.137 。现在,我想在物理机(真实机器)中连接虚拟机中的iubt 这个docker容器,我该如何做呢?
先将之前创建好的iubt容器删除

再用端口映射的方式创建新的容器

我们将容器的 2222 端口,映射到宿主机(虚拟机)的 22 端口
然后我们用物理机的的ssh客户端来连到容器中去

输入密码 123

连接成功。

直接通过import 拉取线上的alpine镜像并提交

二.centos6 下通过febootstrap创建docker基础镜像(已作废,简单说明下)

安装

拉取并安装一些需要的软件

打包并提交镜像的操作同上

tips:Centos6 上可以使用 febootstrap 制作Docker镜像 不过Centos7上面已经改为了supermin

三.CentOS7 下通过supermin创建docker基础镜像

安装supermin

运行命令 supermin5 –help 可以查看基本的使用方法

制作镜像

创建一个临时目录

顺便查看一下系统版本

步骤-1

步骤-2

步骤-3
此时请务必切换成root用户,其他用户制作的镜像可能会出现一些预料不到的问题

步骤-4
导入tar文件到docker

查看镜像:

运行镜像:

发表评论

正在加载验证码......

请先完成验证