1. Introdução ao Docker Desktop
Docker Desktop
é um aplicativo de instalação com um clique para ambientes Mac, Linux ou Windows que permite criar, compartilhar e executar aplicativos e microsserviços em contêineres.
Ele fornece uma GUI (Interface Gráfica do Usuário) intuitiva que permite gerenciar contêineres, aplicativos e imagens diretamente de sua máquina. Docker Desktop pode ser usado sozinho ou como ferramenta complementar à CLI.
2. Introdução ao Docker Engine
Docker Engine
É uma tecnologia de conteinerização de código aberto para construção e conteinerização de aplicativos. Docker Engine como um aplicativo cliente-servidor:
- Servidores com daemons de longa duração.
- APIs que especificam interfaces que os programas podem usar para se comunicar e emitir instruções para o daemon do Docker.
- Janela de encaixe do cliente da interface de linha de comando (CLI).
A CLI usa a API do Docker para controlar ou interagir com o daemon do Docker por meio de scripts ou comandos diretos da CLI. Muitos outros aplicativos Docker usam a API e CLI subjacentes. O daemon cria e gerencia objetos Docker, como imagens, contêineres, redes e volumes.
Docker Engine está disponível em várias distribuições Linux, macOS e Windows via Docker Desktop, ou pode ser instalado como um binário estático.
3. Qual é a diferença entre Docker Desktop para Linux e Docker Engine?
Docker Desktop for Linux
e Docker Engine
podem ser instalados lado a lado na mesma máquina. O Docker Desktop para Linux armazena contêineres e imagens em locais de armazenamento isolados em máquinas virtuais e fornece controles para limitar seus recursos. Usar um local de armazenamento dedicado para Docker Desktop evita que ele interfira no Docker Engine instalado na mesma máquina.
Embora seja possível executar o Docker Desktop e o Docker Engine ao mesmo tempo, executar os dois ao mesmo tempo pode causar problemas em alguns casos. Por exemplo, ao mapear uma porta de rede para um contêiner (-p / --publish), o Docker Desktop e o Docker Engine podem tentar reservar a mesma porta em sua máquina, o que pode causar um conflito ("porta já em uso").
Geralmente recomendamos interromper o Docker Engine ao usar o Docker Desktop para evitar que o Docker Engine consuma recursos e evitar conflitos conforme descrito acima.
Pare o Docker Engine usando o seguinte comando:
sudo systemctl stop docker docker.socket containerd
Se você configurou o Docker Engine para reiniciar automaticamente com o sistema, use o seguinte comando:
sudo systemctl disable docker docker.socket containerd
4. Como alternar entre Docker Desktop e Docker Engine?
O Docker CLI pode ser usado para interagir com vários Docker Engines. Por exemplo, você pode usar a mesma CLI do Docker para controlar instâncias locais do Docker Engine e instâncias remotas do Docker Engine em execução na nuvem. O contexto do Docker permite alternar entre instâncias do Docker Engine.
Quando o Docker Desktop é instalado, um desktop-linux
contexto dedicado é criado para interagir com o Docker Desktop. Quando o Docker Desktop é iniciado, seu próprio contexto é automaticamente definido como o contexto atual. Isso significa que os comandos subsequentes da CLI do Docker terão como alvo o Docker Desktop. Redefine o contexto atual para o contexto após o desligamento ou saída do Docker Desktop default
.
Use docker context ls
o comando para visualizar os contextos disponíveis na máquina. O contexto atual está marcado com um asterisco (*);
docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ...
default * Current DOCKER_HOST based configuration unix:///var/run/docker.sock ...
desktop-linux unix:///home/<user>/.docker/desktop/docker.sock ...
Se você tiver o Docker Desktop e o Docker Engine instalados na mesma máquina, poderá executar Docker context use
comandos para alternar entre os contextos do Docker Desktop e do Docker Engine.
Use default
contexto e Docker Engine
interação:
docker context use default
default
Current context is now "default"
Use desktop-linux
contexto e Docker Desktop
interação
docker context use desktop-linux
desktop-linux
Current context is now "desktop-linux"
Para obter mais detalhes sobre o contexto do docker, consulte: trabalhando com contextos