Imagem de compilação do Docker (3)

Use o Dockerfile para criar uma imagem

O Dockerfile usa DSL (Linguagem Específica de Domínio) para criar uma imagem do Docker.Depois de editar o arquivo Dockerfile, você pode usar docker buildcomandos para criar uma nova imagem.

Primeiro, criamos uma pasta vazia e criamos um arquivo chamado Dockerfile sob a pasta.

toque em Dockerfile

Edite este arquivo Dockerfile para adicionar o conteúdo mostrado abaixo.

vim Dockerfile 
# version: 0.0.1 
DO ubuntu: 14.04 
MAINTAINER jackfrued "[email protected]" 
EXECUTE o apt -get update && apt-get install - e o nginx 
RUN ecoa 'olá, mundo!' > / usr / share / nginx / html / index.html 
EXPOSIÇÃO 80

Vamos explicar o arquivo Dockerfile acima. O arquivo Dockerfile especifica a imagem básica (instrução FROM), o comando que precisa ser especificado após a criação do contêiner (instrução RUN) e a porta (EXPOSE) que precisa ser exposta por meio de instruções especiais. Nós apresentaremos esses comandos do Dockfile para você posteriormente.

Em seguida, podemos usar o docker buildcomando para criar o espelho, como mostrado abaixo.

docker build -t = "jackfrued / servidor da web".

Dica: . Não perca o último comando acima , significa encontrar o Dockerfile a partir do caminho atual.

Você pode visualizar a imagem criada pelo seguinte comando.

imagens do docker 
TAG DE REPOSITÓRIO ID DA IMAGEM TAMANHO CRIADO 
jackfrued / webserver mais recente 87d6cb096be2 23 minutos atrás 222 MB

Se você quiser saber como o arquivo de imagem é criado, use o seguinte comando.

histórico do docker jackfrued / servidor da web 
IMAGEM CRIADA POR TAMANHO 
87d6cb096be2   25 minutos atrás / bin / sh -c # (nop) EXPOSIÇÃO 80 / tcp 0 B                  
53d3bc3a123e   há 25 minutos / bin / sh -c service nginx start 3 B 
10646b63275e   há 25 minutos / bin / sh -c echo 'olá, mundo!' > / usr / sha ... 14 B 
f3e3bf3e998e   há 25 minutos / bin / sh -c apt-get update && apt-get insta ... 34,3 MB 
c98e22cf5a64   há 26 minutos / bin / sh -c # (nop) MANUTENÇÃO jackfrued "j ... 0 B 
2c5e00d77a67 3 meses atrás / bin / sh -c # (nop) CMD [" / bin / bash "] 0B
 <missing> há 3 meses / bin / sh -c mkdir -p / run / systemd && echo '... 7 B 
<missing> há 3 meses / bin / sh -c rm -rf / var / lib / apt / lists / *           0 B 
<missing> 3 meses atrás / bin / sh -c set -xe && echo '#! / bin / sh'> ... 195 kB 
<missing> 3 meses atrás / bin / sh -c # ( nop) ADICIONAR arquivo: 1e01ab604c0cc30 ... 188 MB

Use esta imagem para criar um contêiner para executar um servidor da web.

docker execute -d -p 80:80 --name mywebserver jackfrued / webserver nginx -g "daemon off;"
Se você deseja colocar o arquivo de imagem criado acima no armazém dockerhub, siga as etapas mostradas abaixo.

Efetue login no dockerhub com o seguinte comando.

login do docker

Digite o nome de usuário e a senha para efetuar login.

Entre com seu ID do Docker para enviar e receber imagens do Docker Hub. Se você não possui um ID do Docker, acesse https://hub.docker.com para criar um.
Nome de usuário: jackfrued 
Senha: 
Login Sucedido

Envie a imagem para o armazém com o seguinte comando.

docker push jackfrued / servidor da web

Instrução Dockerfile

Se você deseja conhecer as instruções do Dockerfile, consulte o manual de referência oficial.A seguir, apresentamos algumas instruções comuns para você.

  1. FROM: defina a imagem básica, que deve ser a primeira instrução no Dockerfile.

    FROM <nome do espelho> [AS <alias> ] 
    ou 
    
    FROM <nome do espelho> [: <tag>] [AS <alias>]
  2. EXECUTAR: Especifique o comando a ser executado ao criar a imagem.

    EXECUTAR <comando> [parâmetro 1], [parâmetro 2], ... 
    ou 
    
    EXECUTAR [ "arquivo executável", "parâmetro 1", "parâmetro 2", ...]
  3. CMD: especifique o comando a ser executado após criar a imagem.

    CMD <Command> [Parâmetro 1], [Parâmetro 2], ... 
    ou 
    
    CMD [ "Executável", "Parâmetro 1", "Parâmetro 2", ...]

    Nota: O Docker é diferente de uma máquina virtual.O próprio contêiner é um processo, e o aplicativo no contêiner deve estar em execução em primeiro plano. O comando CMD é equivalente a especificar o processo principal do contêiner (o programa a ser executado em primeiro plano após a criação do contêiner) .Se o processo principal terminar, o contêiner interromperá a execução. Portanto, iniciar o Nginx no contêiner não pode ser usado service nginx startou systemctl start nginxdeve ser CMD ["nginx", "-g", "daemon off;"]executado em primeiro plano , deixando-o.

  4. ENTRYPOINT: semelhante ao CMD, você também pode executar comandos, mas docker runtodos os parâmetros especificados na linha de comando serão passados ​​como parâmetros para os comandos na instrução ENTRYPOINT novamente, o que nos permite criar um espelho que possa executar um comando padrão, Ele também suporta a docker runespecificação de opções de parâmetros substituíveis para o comando através da linha de comando.

    ENTRYPOINT <comando> [parâmetro 1], [parâmetro 2], ... 
    ou 
    
    ENTRYPOINT [ "arquivo executável", "parâmetro 1", "parâmetro 2", ...]
    WORKDIR: Ao criar um novo contêiner por meio de uma imagem, um diretório ativo é criado dentro do contêiner e os programas especificados por ENTRYPOINT e CMD serão executados nesse diretório. Ao usar docker runcomandos, você pode usar -wparâmetros para substituir o diretório de trabalho especificado por WORKDIR. Por exemplo:
  5. WORKDIR /opt/webapp
    
    docker execute -w / usr / share / webapp ...
  6. ENV: defina variáveis ​​de ambiente ao criar uma imagem. Ao usar docker runcomandos, você pode -emodificar as configurações de variáveis ​​de ambiente através de parâmetros. Por exemplo:

    ENV DEFAULT_PORT = 8080 
    docker run -e "DEFAULT_PORT = 8000" ...
  7. USUÁRIO: Especifique o usuário sob o qual a imagem será executada. Por exemplo:

    USUÁRIO nginx
  8. VOLUME: adicione um ponto de montagem do volume de dados ao criar um contêiner. A operação de volume de dados pode realizar o compartilhamento e a reutilização de dados entre contêineres. As alterações feitas no volume podem entrar em vigor imediatamente sem reiniciar o contêiner. Utilizamos os —volumeparâmetros ao criar o contêiner para realizar a operação de mapeamento do volume de dados.

    VOLUME ["/ caminho1", "/ caminho2 / caminho2.1/", ...]
  9. ADD: Copie os arquivos e pastas no diretório build para a imagem.Se os arquivos forem compactados e arquivados, o comando ADD descompactará e arquivará esses arquivos.

    ADICIONAR [--chown = <usuário>: <grupo de usuários>] <arquivo de origem> <arquivo de destino>
  10. COPY: Muito semelhante ao ADD, mas não extrai arquivos ativamente.

  11. ETIQUETA: Adicione alguns metadados à imagem do Docker. docker inspectVocê verá esses metadados ao usar o comando.

    LABEL version = "1.0.0" location = "Chengdu"
  12. ONBUILD: Adicione um gatilho ao espelho.Quando um espelho é usado como espelho base de outros espelhos, o gatilho será executado. Por exemplo:

    COMPLETO ADICIONE. / app / src 
    Execute ONBUILD cd / app / src && make

Acho que você gosta

Origin www.cnblogs.com/guanbin-529/p/12679571.html
Recomendado
Clasificación