文章目录
  1. 1. Docker创建镜像文件
    1. 1.1. 利用base image
    2. 1.2. dockerfile

Docker创建镜像文件

容器是通过images启动的,如何自己创建images就是一个很重要问题。Docker中创建images包括两种方法。一种是利用base images,在一个镜像的基础上创建,另一种是使用dockerfile,基于描述文件创建。以下内容分别进行描述。

利用base image

这种方式是在原有的base image基础上改造,大概步骤包括由base image启动一个实例,然后,在实例中执行一些更新操作,最后保存为新的镜像文件。
首先下载好一个 base image,比如一个ubuntu的base image,每次在这个image中执行一次相关的操作,其对应的版本号就会更新一次,相应的镜像也会更新,将更新好的镜像存起来,可以上传到docker hub中以实现共享,这里可以采用commit命令。
docker commit 命令后面-m参数表示这次提交修改的信息 就像是提交了一个新的版本一样 这个与git很像了 比如-m=”Add json”;-a 参数用来指明作者的信息 是谁提交了这次的修改操作。
先要把docker containr容器改变成一个images 用下面的语句:
docker commit -m="add apt-get" -a="xin" a3debc1 huangxin/test:V2
之后再使用 docker images查看镜像 就有了我们所添加进去的那个镜像了

dockerfile

我们可以使用docker build的方式来扩展一个镜像,命令如下:
sudo docker build -t=”ouruser/sinatra:v2” Dockerfile文件的路径
-t参数表示的是新生成的镜像属于用户ouruser 这个用户的仓库名是sinatra tag标记的V2 若是已经到了Docker文件的目录下 直接用一个 . 来表示Dockerfile文件所在的路径为当前路径,或者你也可以自动进行检测。
以下是一个dockerfile文件中的内容示例:

1
2
3
4
5
# This is a comment
FROM ubuntu:14.04
MAINTAINER Huang Xin <xin@example.com>
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev

之后再用docker images命令 就可以查看到我们新生成的镜像了。dockerfile文件第一行“#”符号后为注释内容。本文之前介绍过docker的镜像是一个层叠式文件系统,第二行FROM语句指定的就是所要创建镜像的基础镜像。MAINTAINER添加一些作者信息。RUN就是在基础镜像中执行的命令,这里需要注意,每加一行RUN,就会多生成一层镜像,最后这些镜像加起来就组成了最终的镜像。另外EXPOSE也是经常使用的dockerfile命令,用来指定容器在运行期间要暴露的端口和映射到主机的端口。ENTRYPOINT表示每次在镜像初始化的时候需要执行的命令,一般只设置一个,要是有多个命令的话,彼此之间需要用&&来隔离开。

文章目录
  1. 1. Docker创建镜像文件
    1. 1.1. 利用base image
    2. 1.2. dockerfile