Como instalar o Docker CE no RHEL 8 / CENTOS 8
- 3271
- 7
- Robert Wunsch DVM
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
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 docontê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