Como instalar e configurar o mecanismo Docker-CE/Moby no Fedora 32

Como instalar e configurar o mecanismo Docker-CE/Moby no Fedora 32

Mesmo que o Red Hat tenha desenvolvido Podman e Buildah, Suas próprias ferramentas para trabalhar com contêineres, que vêm com algumas vantagens importantes como uma arquitetura sem daemon, você pode continuar usando o software Docker original no Fedora. Neste tutorial, exploraremos as opções que temos sobre o lançamento mais recente da distribuição para fazer isso e veremos como aplicar as correções necessárias para o Docker funcionar corretamente.

Neste tutorial, você aprenderá:

  • Como instalar Moby-Engine
  • Como instalar o docker-cé
  • Como aplicar as soluções alternativas necessárias para fazer o Docker funcionar corretamente no Fedora 32


Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Fedora 32
Programas Nenhum software específico é necessário para seguir este tutorial
Outro Permissões de raiz para executar tarefas administrativas
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Moby-Engine vs Docker-CE

Existem duas maneiras de obter o Docker no Fedora 32: podemos instalar o pacote "Docker" dos repositórios oficiais de distribuição ou adicionar o Docker-CE e instale os pacotes necessários a partir daí. Se escolhermos a primeira opção, o Moby-Engine o pacote será instalado em nossa distribuição em vez do real Docker liberar. Se escolhermos o segundo, obteremos o último lançamento da edição comunitária do "oficial" Docker-Engine.

Qual é a diferença entre os dois? "Moby" é um projeto de código aberto "upstream" criado pelo Docker para facilitar a distribuição e dividir sua base de código em vários componentes. O software que obtemos instalando Moby-Engine diretamente do repositório oficial do Fedora é embalado pela distribuição na base deste projeto upsteam, enquanto Docker-CE (e também Docker-ee - Enterprise Edition) é o produto criado pelo Docker Projeto na mesma base. Ambos são liberados sob uma licença de código aberto e estão disponíveis gratuitamente.

Neste tutorial, veremos como executar a instalação de Docker-CE ou Moby-Engine, E também veremos como aplicar as correções necessárias para fazer o Docker funcionar corretamente na versão mais recente do Fedora.

Instalando Moby-Engine a partir dos repositórios oficiais

Instalação Moby-Engine É a maneira mais fácil e rápida de trabalhar com contêineres usando a arquitetura cliente-servidor do Docker na distribuição. Tudo o que precisamos fazer é usar DNF, o gerente de pacotes do Fedora e execute o seguinte comando:

$ sudo dnf install docker Último metadado verificação de expiração: 1:38:14 atrás no sol 03 de maio de 2020 02:22:22. Dependências resolvidas. =================================================== =============================== Arco do pacote Versão do repo Tamanho =============== =================================================== =============== Instalando: Moby-Engine X86_64 19.03.8-1.CE.Gitafacb8b.FC32 Fedora 51 m Instalando dependências: Contêiner-Selinux noarch 2: 2.132.0-1.FC32 Atualizações 48 K Containers x86_64 1.3.3-1.FC32 Atualizações 32 M libbsd x86_64 0.10.0-2.FC32 Fedora 106 K Libnet x86_64 1.1.6-19.FC32 Fedora 64 K Runc x86_64 2: 1.0.0-144.Dev.gite6555cc.FC32 Fedora 2.7 m Instalando dependências fracas: CRIU x86_64 3.13-5.FC32 Fedora 492 K Resumo da transação ================================================= ===================================== Instalar 7 pacotes Tamanho total do download: 86 M Tamanho instalado: 314 m Está tudo bem [S/N]: 


Como você pode ver, mesmo se especificamos Docker como pacote, o Moby-Engine versão 19.03.8-1.CE.Gitafacb8b.FC32 será realmente instalado, juntamente com suas dependências.

Instalando o Docker-CE

Docker Community Edition (CE) é a versão "oficial" do Docker, que, como dissemos antes, é baseada no projeto Moby-Projeto. A instalação no Fedora 32 requer mais etapas. Se você instalou anteriormente a versão do Docker disponível nos Repositórios do Fedora (Moby-Engine), não se esqueça de desinstalá-lo executando o seguinte comando:

$ sudo dnf autoremove Docker 

Se você construiu algumas imagens ou criou recipientes ou volumes, não se preocupe: a vontade preservada.

Depois de ter certeza de que os pacotes instalados anteriormente são removidos do nosso sistema, podemos adicionar o Docker-CE Repositório de nossas fontes de software de distribuição, para que possamos nos manter atualizados com futuras versões. A primeira coisa que precisamos fazer é baixar o Docker-CE.repo arquivo:

$ curl -o https: // download.Docker.com/linux/fedora/Docker-CE.repo 

Se abrirmos o arquivo com nosso editor de texto favorito, podemos ver que a seção em relação a Docker-CE estável está marcado como ativado:

[Docker-CE-estável] Nome = Docker CE Stable-$ Basearch Baseurl = https: // Download.Docker.com/linux/fedora/$ releasever/$ Basearch/stable ativado = 1 gpgcheck = 1 gpgKey = https: // download.Docker.com/linux/fedora/gpg 

Quando o DNF analisa o .repo arquivo, o $ releasever A variável é expandida, como o seu nome sugere, para a versão de liberação de distribuição, neste caso 32. Como no momento da escrita, não há um repositório de Docker-CE explicitamente dedicado ao Fedora 32, temos que substituir essa variável por um valor estático, 31, o lançamento anterior do Fedora. Podemos facilmente executar a mudança usando o sed comando:

# Certifique -se de usar citações únicas! $ sed -i 's/$ releasever/31/g' docker -cc.repo 

Com o comando acima, substituímos todas as ocorrências de $ releasever no arquivo com 31. Para que o comando funcione corretamente, o padrão de substituição deve ser fechado em citações únicas como fizemos acima (ou o $ o personagem deve ser escapado).

Como você pode notar, apenas o estábulo A filial do repositório é ativada por padrão (ativado = 1). Eu sugiro que você deixe dessa maneira, a menos que tenha algum requisito específico.

Para fazer o DNF usar o repositório do Docker-CE, devemos mover o .repo arquivo para o /etc/yum.Repos.d diretório:

$ sudo mv Docker-CE.repo /etc /yum.Repos.d/ 

Neste ponto, podemos emitir o seguinte comando para instalar os pacotes Docker-CC de que precisamos:

$ sudo dnf install docker-c docker-c-cli contêinerd.IO Docker CE estável - x86_64 17 kb/s | 8.9 kb 00:00 dependências resolvidas. =================================================== =================================================== =============================== Arquitetura de pacote Versão do repositório Tamanho ================ =================================================== =================================================== =============== Instalando: Containerd.io x86_64 1.2.13-3.1.FC31 Docker-CE estável 23 m Docker-CE x86_64 3:19.03.8-3.FC31 Docker-CE estável 23 m Docker-C-Cli x86_64 1:19.03.8-3.FC31 Docker-CE estável 39 m Instalando dependências: Contêiner-Selinux noarch 2: 2.132.0-1.FC32 Atualizações 48 K libcgroup x86_64 0.42.2-1.FC32 Fedora 68 K Resumo da transação ================================================== =================================================== ===================================== Instalar 5 pacotes Tamanho total do download: 85 M Tamanho instalado: 363 m Está tudo bem [S/N]: 

Confirme a instalação para prosseguir. Você também será solicitado a aceitar a chave GPG do repositório recém -instalado.

Inicie o daemon do Docker

Não importa se instalamos Docker-CE do repositório dedicado ou o Moby-Engine, Depois que os pacotes são instalados, para realmente trabalhar com recipientes, precisamos iniciar o Docker Daemon, e opcionalmente, é lançado automaticamente na inicialização. Para executar as duas operações, podemos usar o SystemCtl comando e execute:

$ sudo systemctl atabille -agora docker 

Neste ponto, temos o Docker-CE ou o motor Moby instalado em nosso sistema, e o daemon em execução. No entanto, existem alguns ajustes que precisamos executar para o Docker trabalhar corretamente em nossa distribuição.

Ativar compatibilidade com versões anteriores para cgroups

Desde o Fedora 31, a distribuição patrocinada pela Red Hat mudou para CGROUP V2 (Grupos de controle) por padrão. CGROUP é o mecanismo incluído no kernel Linux, usado para organizar processos hierarquicamente e distribuir recursos de acordo. Docker ainda não suporta a versão 2 de cgroups, portanto devemos desativá -lo. Para fazer isso, devemos passar o Systemd.unified_cgroup_hierarchy = 0 parâmetro para o kernel na bota. Com privilégios administrativos abrem o /etc/default/grub arquivo. Deve ter um conteúdo semelhante a este:

GRUB_TIMEOUT = 5 GRUB_DISTIBUDOR = "$ (sed 's, liberação .*$ ,, g ' /etc /liberação de sistema) "Grub_Default = salvou grub_disable_submenu = true GRUB_TERMINAL_OUTPUT =" Console "GRUB_CMDLINE_LINUX =" RHGB Quiet "GRUB_DISABLE_RECOVERY =" True "GRUB_ENABLE_BLSCFGB = True = True = True = True 

No GRUB_CMDLINE_LINUX Linha, só precisamos adicionar o parâmetro que mencionamos acima, para que pareça desta maneira:

GRUB_CMDLINE_LINUX = "RHGB SIMP SYSTEMDD.unified_cgroup_hierarchy = 0 " 

Depois de concluído, salve o arquivo modificado e reconstrua a configuração do GRUB:

$ sudo grub2 -mkconfig -o/boot/grub2/grub.cfg 

Para tornar as alterações eficazes, precisamos reiniciar a máquina.



Fix DNS não está funcionando dentro do Docker

Vamos agora tentar executar um contêiner muito simples com base no oficial BusyBox imagem. Nós o usamos para executar um muito simples ping comando em www.Google.com. Este é o resultado:

Sudo Docker Run - -rm -it Busybox Ping -C 3 www.Google.com ping: endereço ruim 'www.Google.com ' 

Como você pode ver, um erro é gerado. O ping Comando reclama de www.Google.com ser um endereço ruim, mas isso realmente acontece porque a resolução do DNS não funciona dentro do contêiner. Por que isso acontece? Quando o Docker é executado, ele precisa realizar alguns ajustes de firewall e usar o IP disfarçado. Esse comportamento é bloqueado pelo Firewalld, o gerente de firewall padrão instalado no Fedora. A maneira mais fácil de resolver o problema é adicionar explicitamente o Docker0 interface para o confiável Zona de firewall. Podemos fazer isso através do Firewall-CMD Utilitário:

$ sudo firewall-cmd --permanent-zone = confied --add-interface = Docker0 && sudo firewall-cmd--reload 

Neste ponto, se tentarmos novamente o ping Comando através do contêiner baseado em BusyBox, ele deve funcionar corretamente:

$ sudo docker run -rm -it ocupado ping -c 3 www.Google.com Ping www.Google.com (216.58.198.36): 56 Bytes de dados 64 bytes de 216.58.198.36: seq = 0 ttl = 51 tempo = 31.559 ms 64 bytes de 216.58.198.36: seq = 1 ttl = 51 tempo = 30.417 ms 64 bytes de 216.58.198.36: seq = 2 ttl = 51 tempo = 30.154 ms --- www.Google.com estatísticas com ping --- 3 pacotes transmitidos, 3 pacotes recebidos, 0% de perda de pacotes ida e volta min/avg/max = 30.154/30.710/31.559 ms 

Conclusões

Neste tutorial, aprendemos a diferença entre Moby-Engine e Docker-CE E aprendemos a instalá -los no Fedora 32. Também vimos como aplicar as duas correções necessárias para executar o Docker corretamente na distribuição. Depois de ler este artigo, você deve ter uma configuração de trabalho.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Instale o docker no Almalinux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 22.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Mastering Bash Script Loops
  • Como instalar Kubernetes em todas as distritos Linux
  • Ubuntu 20.04 Guia
  • Introdução aos mecanismos de armazenamento MySQL