您的位置首页生活快答

如何用 Gradle 创建 Docker 镜像

如何用 Gradle 创建 Docker 镜像

的有关信息介绍如下:

如何用 Gradle 创建 Docker 镜像

# This dockerfile uses the ubuntu image

# VERSION 2 - EDITION 1

# Author: docker_user

# Command format: Instruction [arguments / command] ..

# Base image to use, this must be set as the first line

FROM ubuntu

# Maintainer: docker_user (@docker_user)

MAINTAINER docker_user docker_user@email.com

# Commands to update the image

RUN echo "deb

raring main universe" >> /etc/apt/sources.list

RUN apt-get update && apt-get install -y nginx

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

# Commands when creating a new container

CMD /usr/sbin/nginx

其中#表注释,可以标注一些说明性的文字。

FROM关键字指定镜像的来源,默认为DockerHub,也可以写私有仓库的镜像,例如:localhost:5000/centos:6.7,如果本地已经存在指定的镜像名称,则会从本地缓存直接获取。MAINTAINER 指定镜像的作者,之后为镜像操作执行RUN、ADD等,最后是容器启动时发起的指令。

Dockerfile中的指令

FROM: 指定镜像名称,格式为FROM 或FROM :,例如FROM ubuntu 或 FROM ubuntu:12.04

MAINTAINER: 镜像作者 ,格式为 MAINTAINER

RUN:格式为 RUN 或 RUN ["executable", "param1", "param2"]。

前者将在 shell 终端中运行命令,即 /bin/sh -c;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"]。

每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用 \ 来换行。

CMD:支持三种格式

1.CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;

2.CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;

3.CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;

指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。

EXPOSE:格式为 EXPOSE [...]。

告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。

ENV:格式为 ENV 。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。这就对应程序语言中的变量定义,可在需要的时候引用