English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Uso de Containeres Docker

Cliente Docker

O cliente Docker é muito simples, podemos inserir diretamente o comando docker para ver todas as opções de comando do cliente Docker.

w3codebox@w3codebox:~# docker

Pode-se usar o comando docker command --help Para obter uma compreensão mais profunda do uso do comando Docker específico.

Por exemplo, para verificar docker stats Uso específico do comando:

w3codebox@w3codebox:~# docker stats --help

Uso do contêiner

Obter imagem

Se não tivermos a imagem ubuntu localmente, podemos usar o comando docker pull para carregar a imagem ubuntu:

$ docker pull ubuntu

Iniciar contêiner

As seguintes instruções usam a imagem ubuntu para iniciar um contêiner, os parâmetros são para entrar no contêiner em modo de linha de comando:

$ docker run -it ubuntu /bin/bash

Descrição do parâmetro:

  • -i: operação interativa.

  • -t: terminal.

  • ubuntu: imagem ubuntu.

  • /bin/bashO que está após o nome da imagem é o comando, aqui queremos um Shell interativo, então usamos /bin/bash.

Para sair do terminal, insira diretamente exit:

root@ed09e4490c57:/# exit

Reiniciar contêineres parados

Para verificar todos os contêineres, use o comando a seguir:

$ docker ps -a

Clique na imagem para ver a versão ampla:

Para reiniciar um contêiner parado, use o comando docker start:

$ docker start b750bbbcfd88

executar em segundo plano

Em muitos cenários, esperamos que o serviço do docker funcione em segundo plano, podemos usar -O parâmetro d especifica o modo de execução do contêiner.

$ docker run -itd --name ubuntu-test ubuntu /bin/bash

Clique na imagem para ver a versão ampla:

Nota:com -O parâmetro d não entra no contêiner por padrão; para entrar no contêiner, você precisa usar a instrução docker exec(será explicado abaixo).

Parar um contêiner

O comando para parar um contêiner é o seguinte:

$ docker stop <ID do contêiner>

Contêineres parados podem ser reiniciados com docker restart:

$ docker restart <ID do contêiner>

entrar no contêiner

ao usar -d ao especificar os parâmetros, o contêiner entrará em modo de fundo. Neste momento, para entrar no contêiner, você pode usar as seguintes instruções:

  • docker attach

  • docker execRecomenda-se usar o comando docker exec, pois ele sai do terminal do contêiner sem interromper o contêiner.

Comando attach

A seguir está um exemplo de como usar o comando docker attach.

$ docker attach 1e560fca3906

Atenção: Se sair deste contêiner, causará o encerramento do contêiner.

Comando exec

A seguir está um exemplo de como usar o comando docker exec.

docker exec -it 243c32535da7 /bin/bash

Atenção: Se sair deste contêiner, o contêiner não será encerrado, é por isso que é recomendado que todos usem docker exec razão.

Mais detalhes sobre os parâmetros podem ser encontrados usando docker exec --Use o comando help para ver.

Exportar e importar contêiner

Exportar contêiner

Se quiser exportar um contêiner local, pode usar docker export Comando.

$ docker export 1e560fca3906 > ubuntu.tar

Exportar contêiner 1e560fca3906 Exportar snapshot para o arquivo local ubuntu.tar。

Dessa forma, exportará o snapshot do contêiner para o arquivo local.

Importar snapshot do contêiner

Pode usar docker import para importar novamente a partir do arquivo de snapshot do contêiner como imagem, o seguinte exemplo importa o arquivo de snapshot ubuntu.tar para a imagem test/ubuntu:v1:

$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1

Além disso, também pode ser importado especificando um URL ou um diretório, por exemplo:

$ docker import http://example.com/exampleimage.tgz example/imagerepo

Deletar contêiner

Uso para deletar contêiner docker rm Comando:

$ docker rm -f 1e560fca3906

Os seguintes comandos podem limpar todos os contêineres em estado de terminação.

$ docker container prune

Executar uma aplicação web

O contêiner que executamos anteriormente não tem nenhum uso especial.

Vamos tentar construir uma aplicação web usando o docker a seguir.

Vamos executar um aplicativo Python Flask no contêiner docker para executar uma aplicação web.

w3codebox@w3codebox:~# docker pull training/webapp # Carregar o imagem
w3codebox@w3codebox:~# docker run -d -P training/webapp python app.py

Descrição dos parâmetros:

  • -d:Deixar o contêiner em execução no plano de fundo.

  • -P:Mapear aleatoriamente os ports de rede internos do contêiner para o host que usamos.

Verificar o contêiner de aplicação WEB

使用 docker ps 来查看我们正在运行的容器:

w3codebox@w3codebox:~# docker ps
CONTAINER ID        IMAGE               COMMAND             ...        PORTS                 
d3d5e39ed9d3        training/webapp "python app.py" ... 0.0.0.0:32769->5000/tcp

Aqui há mais informações de porta.

PORTS
0.0.0.0:32769->5000/tcp

Docker abriu 5000 porta (porta padrão do Python Flask) mapeada para a porta do host 32769 .

Agora podemos acessar o aplicativo WEB pelo navegador

Também podemos acessar o aplicativo WEB através -p parâmetro para configurar uma porta diferente:

w3codebox@w3codebox:~$ docker run -d -p 5000:5000 training/webapp python app.py

docker psVer containers em execução

w3codebox@w3codebox:~# docker ps
ID DO CONTAINER          IMAGEM                      PORTS                          NOMES
bf08b7f2cd89        training/webapp     ...        0.0.0.0:5000->5000/tcp          wizardly_chandrasekhar
d3d5e39ed9d3        training/webapp     ...        0.0.0.0:32769->5000/tcp xenodochial_hoov

interno do container 5000 porta mapeada para o nosso host local 5000 porta.

atalhos rápidos de portas de rede

através docker ps o comando pode ver o mapeamento de portas do containerdocker também oferece outro atalho rápido docker portusando docker port pode ver qual porta específica do container (ID ou nome) está mapeada para a porta do host.

No topo, o ID do container do aplicativo WEB que criamos é bf08b7f2cd89  O nome é wizardly_chandrasekhar.

Eu posso usar docker port bf08b7f2cd89  ou docker port wizardly_chandrasekhar para ver a mapeamento de portas do container.

w3codebox@w3codebox:~$ docker port bf08b7f2cd89
5000/tcp -> 0.0.0.0:5000
w3codebox@w3codebox:~$ docker port wizardly_chandrasekhar
5000/tcp -> 0.0.0.0:5000

Ver log do aplicativo WEB

docker logs [ID ou nome] pode ver a saída padrão do container.

w3codebox@w3codebox:~$ docker logs -f bf08b7f2cd89
 * Rodando em http://0.0.0.0:5000/ (Pressione CTRL+C para sair)
192.168.239.1 - - [09/Maio/2016 16:30:37] "GET / HTTP/1.1" 200 -
192.168.239.1 - - [09/Maio/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -

-f: deixe docker logs assim como usar tail -f para outputar a saída padrão do container.

Daqui em cima, podemos ver que o aplicativo está usando 5000 porta e ver o log de acesso da aplicação.

Ver os processos do container da aplicação WEB

Também podemos usar docker top para ver os processos em execução dentro do container

w3codebox@w3codebox:~$ docker top wizardly_chandrasekhar
UID          PID          PPID          ...          TEMPO          CMD
root    23245       23228         ... 00:00:00          python app.py

para verificar a aplicação WEB

usar docker inspect para ver informações básicas do Docker. Ele retornará um arquivo JSON que registra a configuração e o estado do container Docker.

w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar
[
    {
        "Id": "bf0"8b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85",
        "Created": ""2018-09-17T01:41:26.174228707Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 23245,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": ""2018-09-17T01:41:26.494185806Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        }
......

Parar o container da aplicação WEB

w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar   
wizardly_chandrasekhar

Reiniciar o container da aplicação WEB

Container parado, podemos usar o comando docker start para iniciá-lo.

w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar
wizardly_chandrasekhar

docker ps -l Consulta o último container criado:

# docker ps -l 
ID DO CONTAINER          IMAGEM                      PORTS                          NOMES
bf08b7f2cd89        training/webapp     ...        0.0.0.0:5000->5000/tcp          wizardly_chandrasekhar

Para containers em execução, podemos usar o comando docker restart para reiniciar.

Remover Container de Aplicação WEB

Podemos usar o comando docker rm para remover containers não necessários

w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar  
wizardly_chandrasekhar

Ao remover um container, o container deve estar em estado de parada; caso contrário, será exibido o erro conforme abaixo

w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar
Resposta de erro da daemon: Você não pode remover um container em execução bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85Parar o container antes de tentar remover ou remover forçadamente