制作ubuntu16.04最小docker镜像
来源:互联网 发布:区域分割算法优缺点 编辑:程序博客网 时间:2024/05/21 13:55
背景:
最近在建设linux统一开发服务器,用的是ubuntu16.04系统.
由于开发人员需要使用docker,因此,需要做一个docker image给大家用.
由于国家的网络限制问题,很难从dockerhub中下载到docker镜像,因此,委托同事下载了一个ubuntu14.04的docker镜像
虽然,docker镜像是14.04,不是我们系统的16.04,但是,docker的原理是只加载kernel,因此,docker镜像14.04可以正常跑在16.04上的.
强迫症:
出了强迫症,决定自己做一个ubuntu16.04的docker镜像出来.
实践如下:
参考官网:https://docs.docker.com/engine/userguide/eng-image/baseimages/
从github:https://github.com/docker/docker/blob/master/contrib/mkimage-debootstrap.sh
中弄下这个自动生成docker最小镜像的脚本.
mkimage-debootstrap.sh -h 查看帮助
./mkimage-debootstrap.sh ubuntu xenial
脚本就开始运行了(环境需要可以上外网才行)
这时关键来了:
到apt-get update那步时,就走不动了,因为/etc/apt/sources.list里用的是国外的源,这里拿不到数据
ctrl+c中断脚本
cd /var/tmp/docker-rootfs-debootstrap-xenial-xxxxxx-xxxxxxx
(上面的xxxx是随机数字,根据每个人的情况不一样)
这里就是新文件系统的根目录( 脚本是用debootstrap命令实现的).
将该路径下的 etc/apt/sources.list改成公司镜像里的sources.list地址.
然后,查看mkimage-debootstrap.sh里apt-get update那之后的实现, 其实就只剩几句有用的没有执行了.
sudo chroot . apt update
sudo chroot . apt dist-upgrade -y
这样,ubuntu16.04的根文件系统就补全了
然后,将根文件系统做成docker镜像
sudo tar --numeric-owner -c . | docker import - ubuntu:xenial
检查一下是否成功:
docker images 查看是否有ubuntu:xenial的镜像
运行:
docker run -i -t ubuntu:xenial echo success
看看是否正确输出success.
如果是,恭喜你!
ubuntu16.04的docker镜像自己动手做出来了!!
- 制作ubuntu16.04最小docker镜像
- 制作ubuntu16.04的docker镜像
- 制作ubuntu16.04的docker镜像
- Laravel Docker镜像制作:ubuntu16.04+php7.0.8+nginx
- 8.Ubuntu16.04构建docker镜像
- Docker镜像制作
- 制作Docker镜像
- docker制作镜像
- Docker镜像制作
- 6.Ubuntu16.04Docker查看和删除镜像
- 7.Ubuntu16.04Docker获取和推送镜像
- 制作各种docker镜像
- dockerfile制作docker镜像
- Dockerfile制作Docker镜像
- 制作tomcat docker镜像
- docker基础镜像制作
- 如何制作Docker镜像
- docker之镜像制作
- python的 filter, map, reduce, lambda, list comprehension
- java 命令模式
- java核心技术卷 之复选框
- Git的stash命令
- RabbitMQ系列—RabbitMQ介绍
- 制作ubuntu16.04最小docker镜像
- 招人---其实不简单
- 04-javascript object
- 类的创建和使用
- img标签
- 海量实时用户行为数据的存储和分析
- jeecg hibernate保存实体Incorrect string value: '\xAC\xED\x00\x05sr...' for column
- swfit和OC间的区别(一)
- 常用系统函数整理