Como instalar o Docker CE no RHEL 8 / CENTOS 8

Como instalar o Docker CE no RHEL 8 / CENTOS 8

O último lançamento do RHEL 8 / CENTOS 8. Red Hat construiu suas próprias ferramentas, Buildah e Podman, que pretendem ser compatíveis com as imagens do Docker existente e funcionam sem confiar em um daemon, permitindo a criação de contêineres como usuários normais, sem a necessidade de permissões especiais (com algumas limitações: e.g. No momento da redação, ainda não é possível mapear as portas host para o contêiner sem privilégios).

Algumas ferramentas específicas, no entanto, ainda estão faltando: um equivalente a Docker-Compose, por exemplo, ainda não existe. Neste tutorial, veremos como instalar e executar o Docker CE original no RHEL8 usando o repositório oficial do Docker para o CentOS7.

Neste tutorial, você aprenderá:

  • Como habilitar o repositório Docker-CE no RHEL 8 / CENTOS 8
  • Como instalar o Docker e o Docker-Compose no RHEL 8 / CENTOS 8


Docker instalado no RHEL 8 / CENTOS 8

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 RHEL 8 / CENTOS 8
Programas Docker versão 18.09.2
Outro Permissão para executar o comando com privilégios root.
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

O que é Docker?

Docker é um projeto de código aberto que permite a criação e distribuição de aplicações dentro containers, que são ambientes padronizados que podem ser facilmente replicados, independentemente do sistema host. Enquanto em Red Hat Enterprise Linux 7 Docker foi oficialmente apoiado, no novo lançamento deste sistema operacional de código aberto, ele foi substituído por uma série de outras ferramentas desenvolvidas pelo próprio Red Hat: Buildah e Podman.

Com o uso de um repositório externo, no entanto, ainda é possível instalar o Docker CE (Community Edition). Neste tutorial, veremos como instalar este repositório; observe, no entanto, que foi originalmente destinado a CENTOS 7 (um clone rhel) e a versão comunitária do Docker não tem apoio oficial à Red Hat Enterprise Linux. Por causa disso, existem questões - discutimos abaixo.

Adicionando o repositório externo

Como o Docker não está disponível no RHEL 8 / CENTOS 8, precisamos adicionar um repositório externo para obter o software. Nesse caso, usaremos o repositório oficial do Docker CE CentOS: este é, no momento da redação, a única maneira de instalar o Docker CE no RHEL 8 / CENTOS 8.



O DNF Config-manager utilidade Vamos, entre as outras coisas, facilmente habilitar ou desativar um repositório em nossa distribuição. Por padrão, apenas o Appstream e Baseos Os repositórios estão ativados no RHEL8; Precisamos adicionar e ativar também o Docker-CE repo. Tudo o que precisamos fazer para realizar esta tarefa é executar o seguinte comando:

$ sudo dnf config-manager --add-repo = https: // download.Docker.com/linux/CentOS/Docker-CE.repo

Podemos verificar se o repositório foi ativado, analisando a saída do seguinte comando:

$ sudo dnf repolista -v

O comando acima retornará informações detalhadas sobre todos os repositórios ativados. É isso que você deve ver neste momento:

Repo-Id: Docker-CE estável repo-name: Docker CE Stable-X86_64 Repo-revisão: 1549905809 Repondo-se: Seg 11 de fevereiro de 2019 06:23:29 PM CET Repo-Pkgs: 30 Repo-Size: 618 M Repo Repo -baseurl: https: // download.Docker.com/linux/CentOS/7/x86_64/estábulo repo-expire: 172.800 segundos (s) (último: seg 18 de fevereiro de 2019 10:23:54 CET) Repo-Filenome:/etc/yum.Repos.D/Docker-CE.repo repo-id: rhel-8-for-x86_64-appstream-rpms repo-name: Red Hat Enterprise Linux 8 para x86_64-AppStream Beta (RPMS) Repo-Revisão: 1542158694 Repondado: 14 de novembro de 2018 02:24: 54 AM CET Repo-Pkgs: 4.594 repo-tamanho: 4.9 G repo-Baseurl: https: // cdn.chapéu vermelho.com/content/beta/rhel8/8/x86_64/appstream/os repo-expire: 86.400 segundos (s) (último: seg 18 de fevereiro de 2019 10:23:55 CET) REP-Filename:/etc/yum.Repos.D/Redhat.Repo Repo-ID: RHEL-8-FOR-X86_64-BASEOS-RPMS Repo-name: Red Hat Enterprise Linux 8 para X86_64-Baseos beta (RPMS) Repo-revisão: 1542158719 Repado: 14 de novembro de 2018 02:25: 19:00 CET repo-pkgs: 1.686 repo-size: 925 M Repo-Baseurl: https: // cdn.chapéu vermelho.com/content/beta/rhel8/8/x86_64/baseos/os repo-expire: 86.400 segundos (s) (último: seg 18 de fevereiro de 2019 10:23:56 CET) Repo-filename:/etc/yum.Repos.D/Redhat.Pacotes totais de repo: 6.310 

Instalando o Docker-CE

O Docker-CE estável O repositório agora está ativado em nosso sistema. O repositório contém várias versões do Docker-CE Pacote, para exibir todos eles, podemos executar:

$ DNF LISTA DOCKER-CE-SHOWDUPLICATES | classificar -R Docker -CE.x86_64 3:19.03.2-3.El7 Docker-CE estável Docker-CE.x86_64 3:19.03.1-3.El7 Docker-CE estável Docker-CE.x86_64 3:19.03.0-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.9-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.8-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.7-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.6-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.5-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.4-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.3-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.2-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.1-3.El7 Docker-CE estável Docker-CE.x86_64 3:18.09.0-3.El7 Docker-CE estável Docker-CE.x86_64 18.06.3.CE-3.El7 Docker-CE estável Docker-CE.x86_64 18.06.2.CE-3.El7 Docker-CE estável Docker-CE.x86_64 18.06.1.CE-3.El7 Docker-CE estável Docker-CE.x86_64 18.06.0.CE-3.El7 Docker-CE estável Docker-CE.x86_64 18.03.1.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 18.03.0.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.12.1.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.12.0.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.09.1.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.09.0.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.06.2.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.06.1.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.06.0.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.03.3.CE-1.El7 Docker-CE estável Docker-CE.x86_64 17.03.2.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.03.1.CE-1.EL7.CENTOS DOCKER-CE estável Docker-CE.x86_64 17.03.0.CE-1.EL7.CENTOS DOCKER-CE estável 

Qual versão para instalar? Bem, o Red Hat parece ter bloqueado de alguma forma a instalação de contêiner.io > 1.2.0-3.EL7, que é uma dependência de Docker-CE. Por causa disso, simplesmente executando o sudo dnf install docker-c comando, não funciona. Como veremos em um minuto, ainda é possível alternar esse problema; uma vez Docker-CE está instalado, no entanto, outro problema se torna evidente: desde que Firewalld, O gerente de firewall do sistema está ativado, Resolução DNS Interior dos contêineres do Docker não funciona.

Isso é, é claro, um problema crítico. No entanto, se você ainda deseja prosseguir com a instalação, aqui estão os métodos possíveis que podem ser usados ​​para evitar problemas de dependências:

  • Instale uma versão específica de Docker-CE que requer uma versão instalável do contêiner.io pacote;
  • Forçar a instalação que fornece o --Nobest opção
  • Instale o último disponível contêiner.io RPM manualmente;

Instale uma versão específica do Docker-CE

No momento de escrever as versões de Docker-CE que estão instalados sem problemas são:

  • Docker-CE-3: 18.09.1-3.EL7
  • Docker-CE-18.06.3.CE-3.el7;
  • Docker-CE-17.12.1.CE-1.EL7.CENTOS

Para instalar uma versão específica, tudo o que precisamos fazer é fornecer o nome do pacote totalmente qualificado, por exemplo:

$ sudo dnf install docker-c-3: 18.09.1-3.EL7

Forçar a instalação do docker -c com a opção -nobest

Normalmente, ao instalar um pacote, o melhor candidato disponível é selecionado de um repositório. Nesse caso, por exemplo, a instalação da versão mais recente de Docker-CE é tentado (e falha). Usando o --Nobest opção, podemos mudar esse comportamento para que a primeira versão de Docker-CE com dependências satisfatórias é selecionado como "fallback", neste caso 3:18.09.1-3.EL7.

$ sudo dnf install-Nobest Docker-CE Dependências resolvidas. Problema: pacote Docker-CE-3: 19.03.2-3.EL7.x86_64 requer contêiner.io> = 1.2.2-3, mas nenhum dos provedores pode ser instalado - não pode instalar o melhor candidato para o trabalho - Package Containerd.io-1.2.2-3.3.EL7.x86_64 é excluído - contêiner de embalagem.io-1.2.2-3.EL7.x86_64 é excluído - contêiner de embalagem.io-1.2.4-3.1.EL7.x86_64 é excluído - contêiner de embalagem.io-1.2.5-3.1.EL7.x86_64 é excluído - contêiner de embalagem.io-1.2.6-3.3.EL7.x86_64 é excluído ================================================== =================================================== =================================================== ==== Package Arch Version Version Repository Tamanho =========================================== =================================================== =================================================== ========== Instalando: Docker-CE x86_64 3:18.09.1-3.EL7 Docker-CE estável 19 m de instalação de dependências: contêinerd.io x86_64 1.2.0-3.El7 Docker-CE estável 22 M Docker-C-CLI X86_64 1:19.03.2-3.El7 Docker-CE estável de 39 m de contêiner-Selinux noarch 2: 2.94-1.git1e99f1d.Módulo+EL8.0.0+4017+BBBA319F RHEL-8-FOR-X86_64-APPSTREAM-RPMS 43 K TAR X86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 838 K LIBCGROUP X86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 70 K Python3-PolicicoreUtils noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 2.2 M Python3-LibseManage x86_64 2.8-5.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 127 K Python3-Setools X86_64 4.2.0-2.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 598 K CHECKPOLICY X86_64 2.8-2.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 338 K Python3-Audit x86_64 3.0-0.10.20180831git0047a6c.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 85 K Policicoreutils-Python-Utils Noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 228 K PACOTES IMPENDO COM DEPENHAS BRONDENTES: DOCKER-CE X86_64 3:19.03.2-3.El7 Docker-CE estável de 24 m Resumo da transação ================================================================== =================================================== =================================================== ============ Instalar 12 pacotes Saltar 1 pacote Tamanho total do download: 85 m Tamanho instalado: 351 m está ok [S/N]:

Instale o mais recente contêiner disponível.IO Pacote manualmente

Se precisarmos estacionar a versão mais recente de Docker-CE, Podemos instalar a versão necessária de contêiner.io manualmente, correndo:

$ sudo dnf install https: // download.Docker.com/linux/CentOS/7/x86_64/estábulo/pacotes/contêinerd.io-1.2.6-3.3.EL7.x86_64.RPM

Após a instalação do pacote, podemos simplesmente instalar o último Docker-CE:

$ sudo dnf install docker-c dependências resolvidas. =================================================== =================================================== =================================================== = Pacote arco versão do repositório Tamanho ============================================= =================================================== =================================================== ======= Instalando: Docker-CE x86_64 3:19.03.2-3.EL7 Docker-CE estável 24 m Instalando dependências: Docker-C-Cli x86_64 1:19.03.2-3.El7 Docker-CE estável 39 M Tar x86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 838 K LIBCGROUP X86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 70 K Resumo da transação ========================================================================== =================================================== =================================================== ================== Instalar 4 pacotes Tamanho total do download: 65 m Tamanho instalado: 275 m está ok [S/N]: 

Esta opção é menos conveniente, pois a contêiner.io o pacote não é instalado como uma dependência de Docker-CE, Portanto, não será removido automaticamente quando este for desinstalado do sistema.

Qualquer método que usamos para instalar Docker-CE, Como dito antes, para fazer Resolução DNS Trabalho dentro dos contêineres do Docker, devemos desativar o firewalld (uma reinicialização do sistema também pode ser necessária):

$ sudo systemctl desativando firewalld


Inicie e habilite o daemon do Docker

Uma vez Docker-CE está instalado, devemos iniciar e ativar o daemon do docker, para que ele também seja lançado automaticamente no inicialização. O comando que precisamos executar é o seguinte:

$ sudo systemctl atabille -agora docker

Neste ponto, podemos confirmar que o daemon está ativo executando:

$ Systemctl Is Active Docker ativo 

Da mesma forma, podemos verificar se ele está ativado na inicialização, executando:

$ SystemCTL Is-habilitado Docker habilitado 

Instalando o Docker-Compose

O Docker Compose é um pacote muito útil que nos vamos gerenciar aplicativos de múltiplas contadores, como por exemplo, aqueles baseados na pilha de lâmpadas, onde cada parte do ambiente (PHP, Apache, MariaDB) é fornecida por um contêiner dedicado (se você estiver interessado No assunto, dê uma olhada em nosso tutorial sobre a criação de uma pilha de lâmpadas à base de docker). O pacote não está disponível no RHEL8, nem existe um equivalente a ser usado com as ferramentas RHEL. É, no entanto, possível instalá -lo de várias maneiras: continue lendo e decida o que mais lhe convier.

Instalação global

A maneira como devemos instalar Docker-Compose varia dependendo de queremos instalá -lo globalmente ou apenas para um único usuário. No momento da redação deste artigo, a única maneira de instalá -lo globalmente é baixar o binário da página do Github do projeto:

$ curl -l "https: // github.com/docker/compor/liberações/download/1.23.2/Docker-Compose-$ (uname -s)-$ (uname -m) "-o Docker-Compose

Depois que o binário é baixado, nós o movemos para /usr/local/bin E fazemos com que seja executável:

$ sudo mv Docker-Compose/usr/local/bin && sudo chmod +x/usr/local/bin/Docker-Compose

O /usr/local A hierarquia não é escolhida aleatoriamente. Essa estrutura de diretório é feita para ser usada para arquivos instalados pelo administrador local manualmente (para software compilado da fonte, por exemplo), a fim de garantir a separação do software instalado com o gerenciador de pacotes do sistema.

Embora seja possível para um usuário normal executar comandos relacionados ao Docker se ele fizer parte do Docker Grupo (o grupo é criado automaticamente quando instalamos o Docker-CE), por padrão, eles devem ser executados com privilégios de root por razões de segurança. Quando precisamos fazer o último, já que o /usr/local/bin O diretório não está no usuário raiz CAMINHO, Precisamos chamar o binário especificando sua localização ou adicionar /usr/local/bin para o CAMINHO em si. A primeira opção é a que eu recomendo neste caso.

Instalação por usuário

Se nosso usuário faz parte do Docker grupo, e assim é permitido executar comandos do docker e desde Docker-Compose está disponível como um pacote python, também podemos instalá -lo usando pip, o gerente de pacote Python. Primeiro, verifique se o próprio Pip está instalado:

$ sudo dnf install python3-pip

Para obter o Docker-Compose, corremos:

$ pip3.6 Instale o Docker-Compose-User


Observe que, mesmo que fosse possível executar o PIP como root para instalar um pacote globalmente, isso não é recomendado e altamente desencorajado.

Testando Docker

Instalamos o Docker e o Docker-Compose, agora para verificar se tudo funciona conforme o esperado, podemos tentar construir uma imagem e executar um contêiner: neste caso, usaremos o oficial httpd um. Tudo o que precisamos fazer é lançar o seguinte comando:

sudo docker run -rm - -name = linuxconfig -test -p 80:80 httpd

Desde o httpd A imagem não existe localmente, será buscada automaticamente e construída. Finalmente, um recipiente baseado nele será lançado em primeiro plano (ele será removido automaticamente quando interrompido). Devemos ser capazes de ver o Funciona! Mensagem quando chegamos ao nosso IP da máquina via navegador.

Conclusões

Red Hat Enterprise Linux 8 não suporta o Docker: nesta distribuição, foi substituído por ferramentas Red Hat própria Buildah e Podman, que são compatíveis com o Docker, mas não precisam de uma arquitetura de servidor/cliente para executar. Usando ferramentas nativas, sempre que possível, é sempre o caminho recomendado, mas por um motivo ou outro você ainda pode querer instalar o docker original. Neste tutorial, vimos como é possível instalar Docker CE no rhel8, usando o repositório oficial do Docker para o CentOS7, que é um clone 100% compatível.

Esta não é uma solução ideal e, como vimos, no momento, são necessárias algumas soluções alternativas para fazer o Docker trabalhar no RHEL8. Se surgirem novos problemas, ou melhores soluções para os problemas mencionados acima são encontrados, este artigo será atualizado de acordo. Fique atento.

Tutoriais do Linux relacionados:

  • Como criar uma pilha de lâmpadas à base de docker usando o docker em…
  • Coisas para instalar no Ubuntu 20.04
  • Instale o docker no Almalinux
  • Como se conectar ao contêiner do Docker via SSH
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Como instalar Kubernetes em todas as distritos Linux
  • Como instalar Debian em um contêiner Luks existente
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Como instalar e configurar o mecanismo Docker-CE/Moby no Fedora…
  • Mastering Bash Script Loops