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

教你打包自己的专属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

推荐阅读