Como instalar e configurar o mecanismo Docker-CE/Moby no Fedora 32
- 2945
- 688
- Wendell Legros
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
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
- « Ativar Adobe Flash para Google Chrome no Ubuntu 20.04 Fossa focal
- Como instalar mod_ssl no rhel 8 / centros 8 com httpd apache webserver »