将Linux的系统制作成Docker镜像

将Linux的系统制作成Docker镜像,第1张

DockerHub 上有很多的镜像,可以满足大部分的需求。这种情况我们就可以直接通过 docker pull ** 从DockerHub上获取对应的镜像。

当然还有一些情况,我们需要的镜像DockerHub上不存在,例如:Linux信创的环境,在DockerHub上就很难知道对应的镜像,如果需要这种镜像的话就需要通过运行的系统来制作镜像了。

/proc 、 /sys 、 /run 、 /dev 这几个目录都是系统启动时自动生成的,虽然也属于文件系统一部分,但是他们每次开机都会有变化,所以打包的时候就应该忽略它们

参数说明:

-c或--create 建立新的备份文件

-f<备份文件>或--file=<备份文件>指定备份文件

-p或--same-permissions 用原来的文件权限还原文件

-v或--verbose 显示指令执行过程

z或--gzip或--ungzip 通过gzip指令处理备份文件

--numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称

tar 命令更多参数可参考:

Linux tar 命令

Linux tar.gz、tar、bz2、zip 等解压缩、压缩命令详解

导入docker之前,最好修改下docker的默认存储路径。

具体修改方法可参考: Linux 下修改Docker默认存储路径

tips: 运行导入的镜像的时候必须带command,否则启动报如下错误. 最后的/bin/bash 不能少

提示: 制作的镜像文件太大,会导致启动容器时候失败: Getting the final child's pid from pipe caused "EOF"

参考文章:

[Docker 镜像导出和导入] https://yeasy.gitbook.io/docker_practice/container/import_export

------------------------------------预备:安装docker-ce------------------------------------------------------

1、安装依赖

docker依赖于系统的一些必要的工具,可以提前安装。

yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加软件源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker-ce

yum clean all

yum makecache fast

yum -y install docker-ce

4、启动服务

通过systemctl启动服务

systemctl start docker

------------------------------------开始制作镜像------------------------------------------------------

docker pull percona:5.7-centos

然后 创建 Dockerfile:

加上USER root以后,

继续build又报错:

只好重新把docker的deamon配置改了,放在新的磁盘上。这不是重点,这里掠过。

把以下配置放在docker-compose.yml中:(注意缩进和分隔,冒号后面必须有空格)

然后启动容器:(这句话要在compose文件所在的目录下执行)

直到有一步骤报错: Failed to get D-Bus connection: Operation not permitted

就是在systemctl 或 service 对mysql进行启停的时候,报的.

网上查到的解决方案是要重新用一种方式run:

然后一直报错说找不到systemctl,没有systemctl就不能方便得在docker内部启停mysql.百度基本上是如下方案:

1.启动(run)镜像时候 -v /sys/fs/cgroup:/sys/fs/cgroup:ro /usr/sbin/init

2.在dockerfile中添加cmd ["/usr/sbin/init"]

但各种尝试,都报错.最常见的是这个错误:

Failed to mount tmpfs at /run: Operation not permitted

[!!!!!!] Failed to mount API filesystems, freezing.

无数次尝试以后,终于得知在启动的时候,不用-it,改用-d成功.:

用下面的语句重新生成镜像:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8559320.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存