问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

docker怎么将宿主机系统生成镜像

发布网友 发布时间:2022-04-23 06:20

我来回答

1个回答

热心网友 时间:2022-04-08 06:16

初次安装部署好docker后,大多数镜像可以从DockerHub 提取,但是大多数人都希望自己可以完全自定义一个镜像,那么这里需要一个第三方工具 febootstrap

  epel6的源提供febootstrap的RPM包

  yum install docker-io febootstrap -y

  service docker start

  chkconfig docker --level35 on
复制代码
  制作CentOS6.6镜像目录

  febootstrap -i yum -i iputils -i iproute -i bash -i vim-minimal -i coreutils -i tar -i net-tools centos6 base   <a href="http://centos.ustc.e.cn/centos/6.6/os/x86_64/" target="_blank">http://centos.ustc.e.cn/centos/6.6/os/x86_64/</a> -u <a href="http://centos.ustc.e.cn/centos/6.6/updates/x86_64/" target="_blank">http://centos.ustc.e.cn/centos/6.6/updates/x86_64/</a>
复制代码
  -i 表示镜像里面安装的RPM包(包括一些人为有必要的软件包)
  centos6 表示镜像的版本说明
  base 表示生成的镜像目录
  后面之后了系统安装源和更新源为USTC

  安装执行后,会开始一系列的RPM包下载安装,过程与yum类似,安装完成后当前目录会多了base目录,里面就是一个镜像的系统文件

  进入base目录等于进入镜像的根目录

  [root@image ~]# cd base/

  [root@image base]# ls

  bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var
复制代码
  可以像一般的系统文件一样先做一些修改配置,例如配置第三方yum源等等

  把base目录把所有文件打包成二进制文件后导入docker创建为镜像

  cd ~/root/base/ && tar -c . | docker import - centos6:base
复制代码
  docker images 可以查看镜像的信息
  一个基本centos镜像创建完毕,下面再利用Dokcerfile制作mysql镜像
  cat Dockerfile

  FROM centos6:base

  MAINTAINER Lion "lioncui@163.com"

  VOLUME /var/lib/mysql

  RUN yum install mysql-server mysql -y

  RUN echo -ne "NETWORKING=yes\\nHOSTNAME=mysql" > /etc/sysconfig/network

  RUN echo -ne "bind-address = 0.0.0.0\\ndefault-storage-engine=innodb\\ninnodb_file_per_table\\n\

collation-server=utf8_general_ci\\ninit-connect='SET NAMES utf8'\\ncharacter-set-server = utf8" > insert

  RUN sed -i "/user=mysql/r insert" /etc/my.cnf && rm -f insert

  RUN echo -ne "/usr/bin/mysql_install_db\\n/usr/bin/mysqld_safe" >> /opt/mysql_start

  RUN chmod 777 /opt/mysql_start

  ENV PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:

  WORKDIR /opt

  EXPOSE 3306

  CMD /bin/sh -c mysql_start
复制代码

  FROM 声明以centos:base镜像为基础
  MAINTAINER 声明镜像的维护者信息
  VOLUME 挂载本地目录到容器里/var/lib/mysql目录(这是mysql默认的数据保存目录)
  由于我希望数据可以持久化防止因为容器误删除而丢失,所以映射到宿主本地目录
  RUN 在镜像中执行安装mysql
  在新镜像中写入HOSTNAME信息,因为mysql启动过程需要network文件
  在my.cnf配置文件插入一些修改配置
  创建启动脚本
  声明环境变量
  制定默认工作目录
  EXPOSE 声明容器需要暴露的端口号
  CMD 是指镜像生成容器后自动执行的命令,类似docker exec,这里是自动启动mysql服务

  根据Dockerfile创建mysql服务镜像
  docker build --rm=true -t mysql:frist .
  查看镜像的树状关系可以发现,mysql:frist是以centos:base为父镜像
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机系统怎么更新(手机系统怎么更新到最新版本) 手机操作系统怎么升级最新版本呢 ...一下有没有那种模仿声音的东西,自己给老班打电话时发出的时成年人声... ...经纬线的说法,正确的是( )A.纬线是与地轴垂直并环绕地球的半圆B... 下列有关纬线的说法,正确的是( )A.所有纬线长度都相等B.纬线都是半 ... 下列有关经纬线的说法,错误的是( )A.地球仪上能画无数条经线B.所有纬 ... 关于纬线和纬度的叙述,不正确的是( )A.纬线指示南北方向B.北纬用“N... 纬线的特征中说法错误的是( ) A.所有纬线相互平行 B.纬线等长 C.同一纬... 下列关于纬线的说法,不正确的是( )A.所有纬线都自成圆圈B.纬线长度都... 关于纬线的说法,错误的是( ) A.纬度越高,纬线越短 B.纬线都是圆圈 C... 黄钻根据级别可以免费获取开心红包 怎么领啊? QQ空间黄钻开心红包在哪里领? P图软件有哪些啊? 有哪些好用的P图软件?免费的? 有哪些p图软件好?? P图的软件都有哪些? 有哪些好用的P图软件? 有哪些简单好用的P图软件? 如果手机没有绑定银行卡该怎么红包? 海尔电视机上的菜单字母是什么? 海尔电视机后面有圆的按钮,请问怎样利用这个按钮调音量? 海尔电视切换到数字电视按哪几个按键,最好详细点 如果手机没有绑定银行卡该怎么红包? 遥控器丢了想切换电视模式但是找不到确认键请问海尔电视上的确认键在哪! 海尔电视遥控器坏了,选择了HDMI,电视侧面的哪个键可以用来确认? 海尔电视变成这样怎么变回来,只有旁边的几个按键,怎么调 海尔平板电视机身侧面键的用法? 海尔电视侧面6个按键叫什么? 如果手机没有绑定银行卡该怎么红包? 最新版本微信支付没绑定银行卡怎么收红包? 空间里面黄钻可以领红包?那个怎么弄~有什么用~杂用 最进有什么活动可以得红黄钻、会员的啊? win8系统要钱吗 QQ空间的黄钻红包怎么发? win8系统是不是免费的? 怎样免费做windows8系统 黄钻领红包一个月几个 系统城官网下载的win8系统是免费使用的吗?怎么下载 跪求好心人分享windows8系统镜像 32&64位 旗舰版软件免费百度云资源 黄钻每月送的红包里的Q币去哪领 正版Windows 8的系统,有免费的吗? QQ皇钻怎么得到 怎么拿到免费的红,绿,黄钻? 安装电脑管家,可免费安装WIN8,是直的吗 开通黄钻怎么把名字改成红色 免费windows8系统下载 qq豪华黄钻怎么领取 求win8系统下载,不要win8.1的,要win8的,要免费的 自带正版win8,可不可以免费升级到8.1 windows xp可以免费升级到windows8吗?