docker build 创建自己的镜像

Owen Jia 2019年03月22日 1,081次浏览

Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。

例:

docker build -f /path/to/a/Dockerfile

docker build -t imagename:tag .

Dockerfile文件结构掌握

dockerfile

  1. FROM 指定依赖与另外一个image,openjdk:8
  2. MAINTAINER、LABEL 指定作者和一些标签信息
  3. COPY 构建image时从当前目录负责到镜像的/data/目录下,linux中cp一样。
  4. RUN 构建image时执行的命令,这里就是一个提示
  5. WORKDIR 切换目录到/data/下,类似linux cd命令
  6. CMD 执行具体的命令,我这里执行linux java命令,用例执行webapp服务
  7. EXPOSE 对外开放8080端口,container外部可以访问的端口。

docker build 命令掌握

docker build -t nc-link:v2 .

"-t nc-link:v2" 是指定镜像的名字,后面"."是当前目录下构建,默认当前目录的dockerfile文件;

folder

执行结果如下:

build

docker image ls 可以查看image列表;

image-ls

如何学习

docker中build、run、logs几个命令是绕不过去的,特别是build必须要扎实掌握,也就是dockerfile文件语法需要掌握,这块可以根据需要慢慢积累就好。

我的场景是部署java web服务,采用springboot作为研发框架最终打包一个可执行的jar文件,抛弃了传统tomcat方式运行去执行java -jar xxx.jar启动服务。

nc-link服务是依赖jdk环境的,从docker hub下载了openjdk:8作为nc-link运行的底层服务。有的服务可能需要依赖很多个其他容器,就像堆箱子一般一层层的往上码。

趋势

服务容器化部署运行的趋势已经显而易见,越早转过来越好,docker是一个很好的选择。

推荐关注作者博客网站:Owen Blog