前言
很多时候一些远古业务程序一直需要在旧的系统环境上运行(unbuntu12,centOS5),生产环境都是较新的系统版本,这个情况我们有两个选择:1. 使用虚拟机安装旧的系统环境。2.打包整旧系统环境,以docker容器方式在新的系统环境上运行。现在介绍一下第2种方法的操作过程。
前提环境
centOS5.8推荐 安装mysql是5.0.95版,我们尝试在centOS7运行centOS5.8容器,并且在该容器部署mysql 5.0.95。
旧系统环境:
LSB Version::core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 5.8 (Final)
Release: 5.8
Codename: Final
docker 版本:
Docker version 1.13.1, build 7d71120/1.13.1
打包centOS5.8
第一步需要更新centos5.8的源,因为centos 5.8已经是一个很古老的版本,原来的源已经失效。不更新的话执行yum install会提示M2Crypto.SSL.SSLError: unknown protocol的错误。
rm -rf /etc/yum.repos.d/* #清理旧的源
touch /etc/yum.repos.d/Bento-Vault.repo #创建新的源文件
执行
vim/etc/yum.repos.d/Bento-Vault.repo修改内容
#BENTO-BEGIN
[C5.8-base]
name=CentOS-5.8 - Base
#baseurl=http://vault.centos.org/5.8/os/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-updates]
name=CentOS-5.8 - Updates
#baseurl=http://vault.centos.org/5.8/updates/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-extras]
name=CentOS-5.8 - Extras
#baseurl=http://vault.centos.org/5.8/extras/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-centosplus]
name=CentOS-5.8 - Plus
#baseurl=http://vault.centos.org/5.8/centosplus/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
#BENTO-END
这个时候就可以使用tar命令打包整个系统, 当中—numeric-owner是代表执行所属,—exclude:排除那些文件或者目录, -zcvf:打包压缩p保持文件的绝对路径。
tar --numeric-owner --exclude=/proc --exclude=/sys -zcvpf centos-58.tar
生成centos-58.tar之后上传到centOS7服务器上。
导入至docker
确保centos7上已经安装好docker,然后简单操作一下导入即可。
docker import centos-58.tar centos5:v1
进入容器并安装mysql
进入容器
docker run -it centos5:v1 /bin/bash
这个时候查看一下系统信息,系统信息显示是centos5
在容器内部安装mysql并启动
yum install -y mysql-server mysql
service mysqld start
成功运行
结语
对比起使用虚拟机,docker迁移旧运行环境十分方便。但是因为容器是共用宿主机的内核,所以涉及一些与内核版本相关的接口未必能正常使用,建议投入到生产环境前需要进行完善的测试。
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!