首页

文章

Docker如何创建镜像?怎么修改,上传镜像

发布网友 发布时间:2022-03-21 00:22

我来回答

2个回答

懂视网 时间:2022-03-21 04:43

产品型号:Thinkpad E15

系统版本:centos8

docker镜像制作方法

Docker Image 有两种制作方法

方法1:docker commit   #将容器实例的当前状态保存成image镜像

方法2:docker build  #使用 Dockerfile 文件制作 image

主介绍docker commit  用法。

实战:使用docker commit生成一个apache docker镜像

1、创建一个安装好apache web服务器的容器镜像

[root@xuegod63 ~]# docker run -it centos:latest /bin/bash

[root@1d3563200047 /]# yum -y install  httpd   #在 container 中安装 apache 软件包

[root@1d3563200047 /]# exit 

2、查看现有的images 镜像列表

[root@xuegod63 ~]# docker images   #查看刚看退出的docker实例。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

centos    latest              196e0ce0c9fb        13 days ago         196.6 MB注:当前只有一个centos镜像。

3、根据容器当前状态做一个image镜像,创建一个安装了apache工具的centos镜像

语法: docker commit

例:

查看刚才安装了apache软件包的的docker容器ID:

[root@xuegod63 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES1d3563200047        centos              "/bin/bash"              10 minutes ago      Exited (0) 6 minutes ago                          tender_joliot

以这个安装了apache软件包的docker容器实例,创建一个镜像。

[root@xuegod63 ~]# docker commit 1d3563200047  centos:apache

sha256:e5917c01599c70d0680beeb35f6df98889dd22106399efd6907d956d8a943242

[root@xuegod63 ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

centos              apache              4fd446f1034a        16 seconds ago      269MB

centos              latest              0f3e07c0138f        5 weeks ago         220MB

总结:

1、创建一个安装好apache web服务器的容器镜像

2、查看现有的images 镜像列表

3、根据容器当前状态做一个image镜像,创建一个安装了apache工具的centos镜像

热心网友 时间:2022-03-21 01:51

 初次安装部署好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为父镜像
...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 领淘通淘客助手这个软件怎么样? 淘宝客必备的九大工具有哪些? 电脑里硬盘如何共享怎么实现多台电脑共用一块硬盘 两台电脑一个硬盘两台电脑是否可以同时用一个硬盘 共享电脑硬盘怎样设置局域网电脑硬盘共享 现在下载歌曲好还是不下好 故障码P033D的含义解析 切菜机多功能型切菜机 scanbox三维扫描仪 苹果13没有删除的备忘录怎么恢复? iphone备忘录永久删除怎么恢复?iphone备忘录恢复最近删除文件方法介绍... 备忘录最近删除怎么找 初一班主任工作计划 新初一班主任工作计划 359度是什么角 报个 定向乡镇卫生院 的医学好不好 酒驾缓刑节保证书怎么写 合同法律咨询免费 这款充电宝可以带上飞机吗? 倪俊卿成就及荣誉 江苏种牛站有几家? 山东宏正牧业有限公司服务承诺 吃早餐后抽血会影响体检结果吗 电脑如何设置护眼模式(台式电脑如何设置护眼模式) 电脑显示器设置护眼电脑屏幕怎么设置比较护眼 广告机是否支持分屏显示功能? 上海东丰船务有限公司怎么样? 马弗炉管厂家 CF手游体验服怎样获取资格 穿越火线体验服在哪申请资格_cf手游体验服资格申请入口链接 穿越火线体验服资格申请链接在哪-穿越火线体验服资格申请链接介绍 快手浏览量多少才能赚钱?快手靠浏览量能挣多少钱? 小麦胚芽如何吃最好 个头怎么造句 高跟鞋走路磨脚该如何处理? 除螨虫的特效药 螨虫什么药物可以除掉 网上在哪买奢侈品 二手包包闲置了怎么办 夫妻想要怀孕要提前做哪些准备 手机图片如何投屏到电视上去 手机图片投屏到电视上去的方法 分区助手无法压缩卷怎么处理? 广州北斗公司有哪些 在文件夹里.把cfg文件删掉.电影还可以看么? 办理骑士卡要钱吗? 一千个伤心的理由吉他谱前奏怎么弹出 一千个伤心的理由吉他谱 去中国逛夜市,必买的小吃有哪些? 上海香肠的配料秘方有哪些? 手机酷狗音乐怎么上传歌词 怎样把手机上歌曲(手机的酷狗里面的)传到电脑(电脑的酷狗里面) 手机酷狗上的歌曲怎么传到电脑上? 薏苡仁和薏米一样吗? 2020Vivo手机酷狗音乐怎么上传自己的歌? 薏仁是薏米吗?营养一样吗? 薏仁和薏米一样吗? 护照遗失补办后以前的签证应怎么处理? OPPO无法开机是怎么回事? oppo手机不能开机怎么回事 oppo手机开机开不了是什么原因? oppo手机充电没反应也打不开机是怎么回事 如何设置朋友圈不让别人看 oppo手机不能开机了怎么办 如何利用电脑截出长图片? 液体洗面奶、护肤品能带上飞机吗? 飞机上化妆品的水可以带上飞机吗? etc怎么看扣费记录 飞机上能带化妆品吗?水状,乳液状的 化妆品能带上飞机吗? docker quickstart terminal怎么创建镜像 Docker创建镜像,怎么修改,上传镜像等详细 怎么删除word空白页面? docker 创建镜像时报错怎样调试 芝麻酱怎么做的。 芝麻酱怎么做? 纯黑芝麻酱怎么做 微信钱包里的交易明细被删除,微信里还有可以查到云记录吗? 微信钱包明细删除了可以查得到吗? 微信转账记录被删除还能查到吗? 怎样制作芝麻酱 怎样做又香又辣的芝麻酱? 怎么查qq是什么时候申请的? 芝麻酱到底是怎么做出来的 如何做正宗的手工芝麻酱? 用豆浆机做芝麻酱应该如何操作? 芝麻酱羊肉怎么做 我的联通流量用超了,怎么办啊 联通流量超出上限后怎么办? 联通流量超出2g扣了五百多块怎么补救?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com