docker 使用supermin5工具制作镜像并且编写相应的dockerFile文件,并使用此文件来制作相应的镜像。两种方法进行例子分析
一 使用supermin5命令(若命令不存在则自己安装)构建centos7系统的docker镜像,镜像名称为centos-7,镜像预装yum、net-tools、initscripts和vi命令,构建完成后提交镜像仓库上传操作,并查看此镜像。
1 针对于这个案例,我们首先安装我们的supermin5 工具
[root@server media]# yum install -y supermin5
Loaded plugins: fastestmirror
centos | 3.6 kB 00:00:00
docker | 2.9 kB 00:00:00
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package supermin5.x86_64 0:5.1.10-1.2.el7 will be installed
--> Processing Dependency: yum-utils for package: supermin5-5.1.10-1.2.el7.x86_64
--> Running transaction check
---> Package yum-utils.noarch 0:1.1.31-34.el7 will be installed
--> Processing Dependency: python-kitchen for package: yum-utils-1.1.31-34.el7.noarch
--> Running transaction check
---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be installed
--> Processing Dependency: python-chardet for package: python-kitchen-1.1.1-5.el7.noarch
--> Running transaction check
---> Package python-chardet.noarch 0:2.2.1-1.el7_1 will be installed
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================================================Package Arch Version Repository Size
=======================================================================================================================================
Installing:supermin5 x86_64 5.1.10-1.2.el7 centos 574 k
Installing for dependencies:python-chardet noarch 2.2.1-1.el7_1 centos 227 kpython-kitchen noarch 1.1.1-5.el7 centos 267 kyum-utils noarch 1.1.31-34.el7 centos 113 kTransaction Summary
=======================================================================================================================================
Install 1 Package (+3 Dependent packages)Total download size: 1.2 M
Installed size: 4.3 M
Downloading packages:
---------------------------------------------------------------------------------------------------------------------------------------
Total 49 MB/s | 1.2 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : python-chardet-2.2.1-1.el7_1.noarch 1/4 Installing : python-kitchen-1.1.1-5.el7.noarch 2/4 Installing : yum-utils-1.1.31-34.el7.noarch 3/4 Installing : supermin5-5.1.10-1.2.el7.x86_64 4/4 Verifying : python-kitchen-1.1.1-5.el7.noarch 1/4 Verifying : supermin5-5.1.10-1.2.el7.x86_64 2/4 Verifying : yum-utils-1.1.31-34.el7.noarch 3/4 Verifying : python-chardet-2.2.1-1.el7_1.noarch 4/4 Installed:supermin5.x86_64 0:5.1.10-1.2.el7 Dependency Installed:python-chardet.noarch 0:2.2.1-1.el7_1 python-kitchen.noarch 0:1.1.1-5.el7 yum-utils.noarch 0:1.1.31-34.el7 Complete!
2 下面开始使用supermin5制作我们所需要的镜像所需的安装包。
下面命令是准备要安装的软件包并保存在supermin.d目录下
[root@server media]# supermin5 -v --prepare bash yum net-tools initscripts vi coreutils -o supermin.d
supermin: version: 5.1.10
supermin: rpm: detected RPM version 4.11
supermin: package handler: fedora/rpm
supermin: prepare: bash yum net-tools initscripts vi coreutils
supermin: packages specified on the command line:- bash-4.2.46-19.el7.x86_64- yum-3.4.3-132.el7.centos.0.1.noarch- initscripts-9.49.30-1.el7.x86_64- coreutils-8.22-15.el7.x86_64
supermin: writing supermin.d.1tcmz1m8/packages
supermin: after resolving dependencies there are 135 packages:- acl-2.2.51-12.el7.x86_64- audit-libs-2.4.1-5.el7.x86_64- basesystem-10.0-7.el7.centos.noarch- bash-4.2.46-19.el7.x86_64- binutils-2.23.52.0.1-55.el7.x86_64- bzip2-libs-1.0.6-13.el7.x86_64- ca-certificates-2015.2.4-71.el7.noarch- centos-release-7-2.1511.el7.centos.2.10.x86_64- chkconfig-1.3.61-5.el7.x86_64- coreutils-8.22-15.el7.x86_64- cpio-2.11-24.el7.x86_64- cracklib-2.9.0-11.el7.x86_64- cracklib-dicts-2.9.0-11.el7.x86_64- cryptsetup-libs-1.6.7-1.el7.x86_64- curl-7.29.0-25.el7.centos.x86_64- cyrus-sasl-lib-2.1.26-19.2.el7.x86_64- dbus-1:1.6.12-13.el7.x86_64- dbus-libs-1:1.6.12-13.el7.x86_64- device-mapper-7:1.02.107-5.el7.x86_64- device-mapper-libs-7:1.02.107-5.el7.x86_64- diffutils-3.3-4.el7.x86_64- dracut-033-502.el7_4.1.x86_64- elfutils-libelf-0.163-3.el7.x86_64- elfutils-libs-0.163-3.el7.x86_64- expat-2.1.0-8.el7.x86_64- file-libs-5.11-31.el7.x86_64- filesystem-3.2-20.el7.x86_64- findutils-1:4.5.11-5.el7.x86_64- gawk-4.0.2-4.el7.x86_64- gdbm-1.10-8.el7.x86_64- glib2-2.42.2-5.el7.x86_64- glibc-2.17-105.el7.x86_64- glibc-common-2.17-105.el7.x86_64- gmp-1:6.0.0-11.el7.x86_64- gnupg2-2.0.22-3.el7.x86_64- gpgme-1.3.2-5.el7.x86_64- grep-2.20-2.el7.x86_64- gzip-1.5-8.el7.x86_64- hardlink-1:1.0-19.el7.x86_64- hostname-3.13-3.el7.x86_64- info-5.1-4.el7.x86_64- initscripts-9.49.30-1.el7.x86_64- iproute-3.10.0-54.el7.x86_64- iptables-1.4.21-16.el7.x86_64- iputils-20121221-7.el7.x86_64- keyutils-libs-1.5.8-3.el7.x86_64- kmod-20-5.el7.x86_64- kmod-libs-20-5.el7.x86_64- kpartx-0.4.9-85.el7.x86_64- krb5-libs-1.13.2-10.el7.x86_64- libacl-2.2.51-12.el7.x86_64- libassuan-2.1.0-3.el7.x86_64- libattr-2.4.46-12.el7.x86_64- libblkid-2.23.2-26.el7.x86_64- libcap-2.22-8.el7.x86_64- libcap-ng-0.7.5-4.el7.x86_64- libcom_err-1.42.9-7.el7.x86_64- libcurl-7.29.0-25.el7.centos.x86_64- libdb-5.3.21-19.el7.x86_64- libdb-utils-5.3.21-19.el7.x86_64- libffi-3.0.13-16.el7.x86_64- libgcc-4.8.5-4.el7.x86_64- libgcrypt-1.5.3-12.el7_1.1.x86_64- libgpg-error-1.12-3.el7.x86_64- libidn-1.28-4.el7.x86_64- libmnl-1.0.3-7.el7.x86_64- libmount-2.23.2-26.el7.x86_64- libnetfilter_conntrack-1.0.4-2.el7.x86_64- libnfnetlink-1.0.1-4.el7.x86_64- libpwquality-1.2.3-4.el7.x86_64- libselinux-2.5-11.el7.x86_64- libsemanage-2.5-8.el7.x86_64- libsepol-2.5-6.el7.x86_64- libssh2-1.4.3-10.el7.x86_64- libstdc++-4.8.5-4.el7.x86_64- libtasn1-3.8-2.el7.x86_64- libuser-0.60-7.el7_1.x86_64- libutempter-1.1.6-4.el7.x86_64- libuuid-2.23.2-26.el7.x86_64- libverto-0.2.5-4.el7.x86_64- libxml2-2.9.1-5.el7_1.2.x86_64- lua-5.1.4-14.el7.x86_64- ncurses-5.9-13.20130511.el7.x86_64- ncurses-base-5.9-13.20130511.el7.noarch- ncurses-libs-5.9-13.20130511.el7.x86_64- nspr-4.10.8-2.el7_1.x86_64- nss-3.19.1-18.el7.x86_64- nss-softokn-3.16.2.3-13.el7_1.x86_64- nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64- nss-sysinit-3.19.1-18.el7.x86_64- nss-tools-3.19.1-18.el7.x86_64- nss-util-3.19.1-4.el7_1.x86_64- openldap-2.4.40-8.el7.x86_64- openssl-libs-1:1.0.1e-42.el7.9.x86_64- p11-kit-0.20.7-3.el7.x86_64- p11-kit-trust-0.20.7-3.el7.x86_64- pam-1.1.8-12.el7_1.1.x86_64- pcre-8.32-15.el7.x86_64- pinentry-0.8.1-14.el7.x86_64- pkgconfig-1:0.27.1-4.el7.x86_64- popt-1.13-16.el7.x86_64- procps-ng-3.3.10-3.el7.x86_64- pth-2.0.7-23.el7.x86_64- pygpgme-0.3-9.el7.x86_64- pyliblzma-0.5.3-11.el7.x86_64- python-2.7.5-34.el7.x86_64- python-iniparse-0.4-9.el7.noarch- python-libs-2.7.5-34.el7.x86_64- python-pycurl-7.19.0-17.el7.x86_64- python-urlgrabber-3.10-7.el7.noarch- pyxattr-0.5.1-5.el7.x86_64- qrencode-libs-3.4.1-3.el7.x86_64- readline-6.2-9.el7.x86_64- rpm-4.11.3-17.el7.x86_64- rpm-build-libs-4.11.3-17.el7.x86_64- rpm-libs-4.11.3-17.el7.x86_64- rpm-python-4.11.3-17.el7.x86_64- sed-4.2.2-5.el7.x86_64- setup-2.8.71-6.el7.noarch- shadow-utils-2:4.1.5.1-18.el7.x86_64- shared-mime-info-1.1-9.el7.x86_64- sqlite-3.7.17-8.el7.x86_64- systemd-219-42.el7_4.6.x86_64- systemd-libs-219-42.el7_4.6.x86_64- sysvinit-tools-2.88-14.dsf.el7.x86_64- tar-2:1.26-29.el7.x86_64- tzdata-2015g-1.el7.noarch- ustr-1.0.4-16.el7.x86_64- util-linux-2.23.2-26.el7.x86_64- xz-5.1.2-12alpha.el7.x86_64- xz-libs-5.1.2-12alpha.el7.x86_64- yum-3.4.3-132.el7.centos.0.1.noarch- yum-metadata-parser-1.1.4-10.el7.x86_64- yum-plugin-fastestmirror-1.1.31-34.el7.noarch- zlib-1.2.7-15.el7.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
(1/32): audit-libs-2.4.1-5.el7.x86_64.rpm | 80 kB 00:00:00
(2/32): ca-certificates-2015.2.4-71.el7.noarch.rpm | 441 kB 00:00:00
(3/32): centos-release-7-2.1511.el7.centos.2.10.x86_64.rpm | 23 kB 00:00:00
(4/32): coreutils-8.22-15.el7.x86_64.rpm | 3.2 MB 00:00:00
(5/32): bash-4.2.46-19.el7.x86_64.rpm | 1.0 MB 00:00:00
(6/32): dbus-1.6.12-13.el7.x86_64.rpm | 306 kB 00:00:00
(7/32): glibc-2.17-105.el7.x86_64.rpm | 3.6 MB 00:00:00
(8/32): gnupg2-2.0.22-3.el7.x86_64.rpm | 1.5 MB 00:00:00
(9/32): grep-2.20-2.el7.x86_64.rpm | 344 kB 00:00:00
(10/32): glibc-common-2.17-105.el7.x86_64.rpm | 11 MB 00:00:00
(11/32): dracut-033-502.el7_4.1.x86_64.rpm | 321 kB 00:00:00
(12/32): info-5.1-4.el7.x86_64.rpm | 233 kB 00:00:00
(13/32): iptables-1.4.21-16.el7.x86_64.rpm | 424 kB 00:00:00
(14/32): iputils-20121221-7.el7.x86_64.rpm | 152 kB 00:00:00
(15/32): krb5-libs-1.13.2-10.el7.x86_64.rpm | 843 kB 00:00:00
(16/32): libpwquality-1.2.3-4.el7.x86_64.rpm | 84 kB 00:00:00
(17/32): libuser-0.60-7.el7_1.x86_64.rpm | 398 kB 00:00:00
(18/32): iproute-3.10.0-54.el7.x86_64.rpm | 526 kB 00:00:00
(19/32): initscripts-9.49.39-1.el7_4.1.x86_64.rpm | 435 kB 00:00:00
(20/32): nss-3.28.4-15.el7_4.x86_64.rpm | 849 kB 00:00:00
(21/32): libsemanage-2.5-8.el7.x86_64.rpm | 145 kB 00:00:00
(22/32): openssl-libs-1.0.1e-42.el7.9.x86_64.rpm | 949 kB 00:00:00
(23/32): openldap-2.4.40-8.el7.x86_64.rpm | 348 kB 00:00:00
(24/32): python-libs-2.7.5-34.el7.x86_64.rpm | 5.6 MB 00:00:00
(25/32): pam-1.1.8-12.el7_1.1.x86_64.rpm | 714 kB 00:00:00
(26/32): rpm-4.11.3-17.el7.x86_64.rpm | 1.2 MB 00:00:00
(27/32): setup-2.8.71-6.el7.noarch.rpm | 165 kB 00:00:00
(28/32): shadow-utils-4.1.5.1-18.el7.x86_64.rpm | 1.1 MB 00:00:00
(29/32): util-linux-2.23.2-26.el7.x86_64.rpm | 1.9 MB 00:00:00
(30/32): yum-3.4.3-132.el7.centos.0.1.noarch.rpm | 1.2 MB 00:00:00
(31/32): yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm | 30 kB 00:00:00
(32/32): systemd-219-42.el7_4.6.x86_64.rpm | 5.2 MB 00:00:00
supermin: writing supermin.d.1tcmz1m8/base.tar.gz
supermin: renaming supermin.d.1tcmz1m8 to supermin.d
3 下面开始构建我们的镜像。下面命令是根据上一步准备的安装包目录制作隔离的环境,并保存在appliance.d目录下
[root@server media]# supermin5 -v --build --format chroot supermin.d -o appliance.d
supermin: version: 5.1.10
supermin: rpm: detected RPM version 4.11
supermin: package handler: fedora/rpm
supermin: build: supermin.d
supermin: build: visiting supermin.d/base.tar.gz type gzip base image (tar)
supermin: build: visiting supermin.d/packages type uncompressed packages
supermin: build: 135 packages, including dependencies
supermin: build: 26059 files
supermin: build: 12875 files, after removing unreadable files
supermin: build: 12875 files, after matching excludefiles
supermin: build: 12875 files, after adding hostfiles
supermin: build: 12913 files, after munging
supermin: renaming appliance.d.idqctht6 to appliance.d
4 如果要使用yum安装软件包,可以执行我们的下面的命令
[root@server media]# echo 7 > appliance.d/etc/yum/vars/releasever
5 如果要上网,则要执行我们下面的命令
[root@server media]# cp /etc/resolv.conf appliance.d/etc/
6 然后开始构建我们的镜像
[root@server media]# tar --numeric-owner -cpf centos-7.tar -C appliance.d/ .
7 开始导入我们的容器
[root@server media]# cat centos-7.tar | docker import - 10.0.3.137:5000/centos-8888
sha256:d06398dcf03fc1d3ef0be50dc5759948775933adc177237644fb5510981c3990
8 使用docker命令查看我们的容器
[root@server media]# docker images | grep centos-8888
10.0.3.137:5000/centos-8888 latest d06398dcf03f 4 minutes ago 260.6 MB
[root@server media]#
以上简单步骤便是我们的使用supermin5 制作我们的镜像的过程
二 编写以上题构建的centos-7镜像为基础镜像,构建数据库服务,Dockerfile要求删除镜像的yum源,使用当前系统的yum源文件,完成后安装mariadb服务,使用mysql用户初始化数据库,添加MYSQL_USER=xiandian、MYSQL_PASS=xiandian环境变量,要求数据库支持中文,暴露端口3306,容器开机运行mysld_safe命令,完成后启动创建的镜像并查询Dockerfile文件,进入容器查看容器的数据库列表.
1 下面编写我们的dockerFile文件
[root@server dockerfile]# vi Dockerfile
FROM 10.0.6.126:5000/centos-7
MAINTAINER Xiandian
RUN rm -fv /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
RUN yum install -y mariadb-server
RUN mysql_install_db --user=mysql
ENV LC_ALL en_US.UTF-8
ENV MYSQL_USER xiandian
ENV MYSQL_PASS xiandian
EXPOSE 3306
CMD mysqld_safe
2 构建我们的docekr镜像文件,这里要留意下,我们的环境变量的USER 和 PWD
下面是查找路径的截图。这里的环境变量是根据我们的数据库Container的API接口来指定的
下面开始构建我们的centos
[root@server dockerfile]# docker build -t 10.0.3.137:5000 /centos .
docker 使用supermin5工具制作镜像并且编写相应的dockerFile文件,并使用此文件来制作相应的镜像。两种方法进行例子分析相关推荐
- Windows Docker 配置国内镜像源的两种方法
Windows Docker配置国内镜像源的两种方法 更新时间 2022.04.14 通过Docker-Desktop界面操作和修改daemon.json两种方法配置国内镜像源 方法一:通过Docke ...
- 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你
在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 目录 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 1.文章中的标题较多,每个单独调整格式太费劲,这里我们用一 ...
- 系统制作U盘两种方法及优缺点-UltraISO和Win32DiskImager,制作后怎么清空U盘恢复正常使用
1.下面介绍制作U盘启动的两种工具 1.1下面是UltraISO工具和Win32DiskImager工具下载地址 链接:https://pan.baidu.com/s/1Qjtm2uC6zAQYLT_ ...
- 如何将unity3d动画嵌入html,在Unity3D中使用精灵动画引擎制作动画的两种方法
7月28日消息,如今的游戏玩家对于游戏角色的动作要求越来越高,给开发者提出了众多的要求,工作量也相应上升.那么如何才能简单快速地制作角色动画以提升效率呢?下面就和大家分享两个在Unity3D中使用精灵 ...
- 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现
实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...
- 递归和循环两种方法完成树的镜像转换
/* copyright@nciaebupt 转载出处:http://blog.csdn.net/nciaebupt/article/details/8506038 题目:输入一颗二元查找树,将该树转 ...
- unity 2D游戏开发 制作帧动画的两种方法
本小主在这里给大家分享一下unity 2D游戏开发中制作帧动画的两种方法. 比较简单,一学即会. 方法一: 是用代码控制: 先创建一个2D工程.导入图片资源,并设置texture的texture ty ...
- c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...
点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...
- 87-Python_某电商平台上销售不同规格包装、不同价格的水笔。编写程序,在不考虑运费的情况下,从键盘分别输人两种水笔的包装和价格,分别计算单根水笔的价格,根据价格就低原则打印输出选择购买哪种产品
某电商平台上销售不同规格包装.不同价格的水笔.编写程序,在不考虑运费的情况下,从键盘分别输人两种水笔的包装和价格,分别计算单根水笔的价格,根据价格就低原则打印输出选择购买哪种产品. def choic ...
最新文章
- 计算机英语缩写AGP,IT行业常用计算机缩略语
- DevExpress.GridControl.gridView的一些注意
- mybatis 配置_MyBatis教程3:优化MyBatis配置文件中的配置
- javascript省市三层联动,修改
- python中的索引从几开始计数_计算机为什么要从 0 开始计数?
- Linux学习之diction的编译与使用
- linux内核更新 2.6.38,内核2.6.38更新2.6.35的地方
- linux系统怎么访问u盘文件系统,linux如何挂载U盘和文件系统
- SSH安全登陆原理:密码登陆与公钥登陆
- go 并发的非阻塞缓存
- ssh 使用公钥登录客户端设置
- 代理猎手(Proxy Hunter)使用详细教程
- 发动机冒黑烟_发动机总冒黑烟 用这招解决最快!
- 基于FPGA的按键消抖
- Linux安装MySQL遇到的问题及其解决方式
- 期刊论文发表见刊是什么意思
- c 当前计算机时间格式,C# 当前系统时间获取及时间格式详解
- Aspose最版本aspose-words:jdk17:23.4 版本,代码分析心得
- 利用pyecharts对职位数据进行地图可视化
- 运行出错 runtime error
热门文章
- 角色建模《女巫》制作教程讲解
- java实现五子棋_java实现五子棋
- 中关村科幻产业创新中心 “科技赋能文化旅游,洞见哈萨克斯坦”数字旅游展盛大开幕
- Acwing 2326:王者之剑(网格图之网络流 最大权独立集)
- 论文翻译(一):Stock-wise Technical Indicator Optimization with Stock Embedding
- 042-云E办_(小问题:)更新用户后,应根据用户权限,显示菜单
- 微信汽配电商小程序开发功能设计方案
- Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally
- Android圆形进度条,显示百分比
- 未能加载 noesis.javascript ......