Docker: Elementos de uma arquivo Dockerfile: Difference between revisions
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Um Dockerfile é um lista de instruções para a criação da imagem e do respectivo container. Exemplo: | |||
FROM python:3.6.1-alpine | FROM python:3.6.1-alpine | ||
Line 5: | Line 5: | ||
COPY app.py /app.py | COPY app.py /app.py | ||
CMD ["python","app.py"] | CMD ["python","app.py"] | ||
= Comandos do arquivo DockerFile= | = Comandos do arquivo DockerFile= | ||
Line 13: | Line 11: | ||
== FROM == | == FROM == | ||
Informo que a docker image vai ter como ''base layer'' o ubuntu:12.04 | |||
'''FROM''' ubuntu:12.04 | |||
== RUN == | == RUN == | ||
O comando RUN executa um comando ao necessário na montagem do container. | |||
'''RUN''' apt-get update | |||
== CMD == | == CMD == | ||
CMD é o comando que é executado ao iniciar o container. | |||
CMD | '''CMD''' /root/wlp/bin/server '''run''' JAXWSEJBSample ''ou'' '''CMD''' ["python","app.py"] | ||
== ADD == | == ADD == | ||
Copia o arquivo para dentro do container | |||
'''ADD''' wlp-developers-extended-8.5.5.2.jar /root/ | |||
== COPY == | == COPY == | ||
Copia o arquivo para dentro do container | |||
'''COPY''' app.py /app.py | |||
== ENV == | == ENV == | ||
Define variáveis de ambiente | |||
ENV REPOSITORY_URL=<nowiki>http://192.168.1.1</nowiki> | |||
ENV LANG=en_US.UTF-8 | |||
== EXPOSE == | == EXPOSE == | ||
Expõe o serviço na porta 9080 | |||
'''EXPOSE''' 9080 | |||
== LABEL == | |||
Define metadados para a imagem | |||
'''LABEL''' title="Container XYZ" | |||
'''LABEL''' version="1.0" | |||
'''LABEL''' description="This text ...." | |||
== STOPSIGNAL == | == STOPSIGNAL == | ||
== USER == | == USER == | ||
A instração USR define o usuário/uid e o group/gid para ser usado ao executar a imagem e para qualquer instrução RUN, CMD e ENTRYPOINT que a segue no Dockerfile. | |||
'''USER''' <user>[:<group>] or | |||
'''USER''' <UID>[:<GID>] | |||
== VOLUME == | == VOLUME == | ||
A instrução VOLUME é server para compartilhar um diretório do filesystem do host e o filesystem do container. | |||
'''VOLUME''' ["/path1/", "/path2/"] | |||
== WORKDIR == | == WORKDIR == | ||
A instrução WORKDIR, define o diretório de trabalho para qualquer comando RUN, CMD, ENTRYPOINT, COPY e ADD. | A instrução WORKDIR, define o diretório de trabalho para qualquer comando RUN, CMD, ENTRYPOINT, COPY e ADD. | ||
''VOLUME''' /software | |||
Se o diretório de trabalho não existir, ele é criado. | Se o diretório de trabalho não existir, ele é criado. | ||
Line 61: | Line 85: | ||
= Ver também = | = Ver também = | ||
* [[[[DevOps | * [[DevOps#Docker|Artigos sobre Docker]] | ||
* [[DevOps|Artigos sobre DevOps]] | |||
* [[Cloud| Artigos sobre Cloud]] | * [[Cloud| Artigos sobre Cloud]] | ||
Latest revision as of 00:24, 27 September 2018
Um Dockerfile é um lista de instruções para a criação da imagem e do respectivo container. Exemplo:
FROM python:3.6.1-alpine RUN pip install flask COPY app.py /app.py CMD ["python","app.py"]
Comandos do arquivo DockerFile
FROM
Informo que a docker image vai ter como base layer o ubuntu:12.04
FROM ubuntu:12.04
RUN
O comando RUN executa um comando ao necessário na montagem do container.
RUN apt-get update
CMD
CMD é o comando que é executado ao iniciar o container.
CMD /root/wlp/bin/server run JAXWSEJBSample ou CMD ["python","app.py"]
ADD
Copia o arquivo para dentro do container
ADD wlp-developers-extended-8.5.5.2.jar /root/
COPY
Copia o arquivo para dentro do container
COPY app.py /app.py
ENV
Define variáveis de ambiente
ENV REPOSITORY_URL=http://192.168.1.1 ENV LANG=en_US.UTF-8
EXPOSE
Expõe o serviço na porta 9080
EXPOSE 9080
LABEL
Define metadados para a imagem
LABEL title="Container XYZ" LABEL version="1.0" LABEL description="This text ...."
STOPSIGNAL
USER
A instração USR define o usuário/uid e o group/gid para ser usado ao executar a imagem e para qualquer instrução RUN, CMD e ENTRYPOINT que a segue no Dockerfile.
USER <user>[:<group>] or USER <UID>[:<GID>]
VOLUME
A instrução VOLUME é server para compartilhar um diretório do filesystem do host e o filesystem do container.
VOLUME ["/path1/", "/path2/"]
WORKDIR
A instrução WORKDIR, define o diretório de trabalho para qualquer comando RUN, CMD, ENTRYPOINT, COPY e ADD.
VOLUME' /software
Se o diretório de trabalho não existir, ele é criado.