教你打包自己的专属docker镜像

简介:

前序

什么是docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

具体关于Docker更多的介绍请自行网上查阅


一、Docker环境的搭建

Docker基于Linux系统为基础的,所以我们先要准备一台Linux系统,这里以CentOS6.8为例

1、检查系统是否可以上网

# ping www.baidu.com

2、安装epel的软件仓库

# yum -y install epel-release

3、检查device-mapper的驱动

# ls /sys/class/misc/device-mapper/

dev  power  subsystem  uevent

*如果为空,执行以下命令

# yum -y install device-mapper

4、安装docker系统环境

# yum -y install docker-io

5、启动docker服务

# service docker start

6、下载基础镜像

# docker pull centos

7、测试基础镜像centos是否可用

# docker run -it --name='test' centos


二、创建自己的定制镜像

序:这里以定制nginx应用为例,以下是具体操作

Docker创建镜像有两种方法:

1、使用docker commit命令

2、使用docker build命令

推荐使用docker build方法来构建自己的镜像,具体原因请自行查阅;以下操作方法都以docker build的方法来示范


1、首先创建一个基目录(也就是创建一个文件夹,把创建镜像用到的所有文件都放在这里)

# mkdir -p /tmp/nginx

# cd /tmp/nginx

# touch Dockfile


2、编写dockerfile文件

# vim Dockerfile

# Author:Zlyang by 2017-06-12

FROM centos

MAINTAINER Zlyang "DBA_Master@163.com"

ENV REFRESHED_AT 2017-06-12

RUN yum -y install nginx

RUN yum -y install vim net-tools wget openssh-*

RUN echo '<h1> Hello Nginx <h1>' >> /usr/share/nginx/html

EXPOSE 80


3、使用docker build构建

# docker build -t='zlyang/nginx' .

注:-t="CNAME" 为新构建的镜像起个别名

. 千万别忘了这个点,指的是当前目录(此项为Dockerfile的路径)


4、创建完成后查看

# docker images 


三、把镜像保存到本地

# docker save -o centos_nginx.tar zlyang/nginx

注:centos_nginx.tar为保存到本地后的包名

    zlyang/nginx 为被打包的对象镜像


到此,镜像就都打包完成了,如果在一台新机器还原docker镜像,只需要使用:docker load --input centos_nginx.tar就可以了。


如有任何问题可以联系:DBA_Master@163.com




     本文转自yangxuncai110 51CTO博客,原文链接:http://blog.51cto.com/zlyang/1936663,如需转载请自行联系原作者



相关文章
|
5月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
453 100
|
5月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
418 99
|
5月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
523 98
|
5月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
4月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
633 5
|
5月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
260 8
|
6月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
446 16
|
6月前
|
运维 关系型数据库 数据库
应用官方 Docker 镜像已成熟,团队为何转向 Websoft9 而不再依赖 Bitnami
随着云原生发展,部署工具从 Bitnami 转向 Websoft9。后者基于官方镜像,提供多应用编排与统一运维,提升部署效率与维护能力,适合多系统协同场景。
应用官方 Docker 镜像已成熟,团队为何转向 Websoft9 而不再依赖 Bitnami
|
6月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。
|
7月前
|
存储 缓存 Serverless
【Azure Container App】如何在Consumption类型的容器应用环境中缓存Docker镜像
在 Azure 容器应用的 Consumption 模式下,容器每次启动均需重新拉取镜像,导致冷启动延迟。本文分析该机制,并提出优化方案:使用 ACR 区域复制加速镜像拉取、优化镜像体积、设置最小副本数减少冷启动频率,或切换至 Dedicated 模式实现镜像缓存,以提升容器启动效率和应用响应速度。
210 0

热门文章

最新文章