Pular para o conteúdo

Como rodar o Oracle 19c em um container Docker – Tutorial completo

Oracle 19c em um container Docker

Olá camaradas !

Hoje estou de volta para mostrar a vocês como rodar um container com o Oracle 19c no Docker. Tudo isso rodando no meu bom e velhor Ubuntu 20.04.4 LTS.

Para isso, iremos utilizar o repositório github oficial da Oracle. Lá você encontrará os dockerfiles e exemplos necessários para instalar diferentes produtos.

Primeiramente, escolha um diretório em sua máquina, para fazermos a clonagem do projeto de nosso interesse. Para isso, utilize o comando abaixo:

git clone https://github.com/oracle/docker-images
Screenshot from 2022 04 24 18 41 36

Agora vá para o diretório docker-images

cd docker-images
Screenshot from 2022 04 24 18 42 10

Observe que temos disponível a imagem de vários produtos. Vamos a aquele que nos interessa, o Oracle 19c.

cd OracleDatabase/SingleInstance/dockerfiles/19.3.0
Screenshot from 2022 04 24 18 47 19

Faça o download do 19c através do link abaixo:

https://www.oracle.com/br/database/technologies/oracle19c-linux-downloads.html

Copie para o mesmo diretório

Screenshot from 2022 04 24 19 04 25

Vamos agora limpar o arquivo db_inst e retirar o comentário e as linhas em branco. Para isso, use o comando abaixo:

grep -v ^# db_inst.rsp | grep -v ^$
Screenshot from 2022 04 25 21 03 35

Faça o mesmo com o dbca.

grep -v ^# dbca.rsp.tmpl | grep -v ^$
Screenshot from 2022 04 25 21 04 47

Voltemos ao diretório dockerfiles e executemos o comando:

./buildContainerImage.sh -v 19.3.0 -e
Screenshot from 2022 04 25 21 09 36

Ops, algo deu errado…vamos verificar o erro:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied
./buildContainerImage.sh: line 94: [: : integer expression expected

Sem permissão para acessar o docker… 🙁

Para resolver esse problema é simples ! Basta executar o comando abaixo:

sudo chmod 666 /var/run/docker.sock

Caso você não tenha tomado esse erro, basta ignorar essa parte.

Screenshot from 2022 04 25 21 12 05

Vamos tentar novamente.

Screenshot from 2022 04 25 21 13 05

Sem erros e dando um build na imagem. 🙂

Ao lancar o setup wizard, a minha instalacao acusou alguns WARNINGs.

Screenshot from 2022 04 26 20 48 22

O importante é que essa etapa termine com a seguinte mensagem:

Successfully Setup Software with warning(s)
Screenshot from 2022 04 26 20 50 01

Após esse ponto, se tudo ocorrer bem até o final, deverá aparecer como na tela abaixo:

Screenshot from 2022 04 26 20 52 06

Imagem gerada com sucesso !!!! 🙂

Build completed in 2016 seconds.

Agora é hora de rodarmos o nosso container. Para isso, usaremos o comando abaixo:

docker run \
--name oracle19c \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_PDB=orcl \
-e ORACLE_PWD=<coloque a sua senha aqui> \
-e ORACLE_MEM=2000 \
-v /opt/oracle/oradata \
-d \
oracle/database:19.3.0-ee

Observe que ele executa o docker run com alguns parâmetros. Ele nomeia o container (–name), libera as portas necessárias para o funcionamento e acesso do banco de dados (-p), seta algumas variáveis necessárias para a instalação (-e). define um volume para o oradata (-v) e executa como detach (-d).

Screenshot from 2022 04 26 21 14 35

Como executamos como detach, a saída não sera mostrada. Para acompanhar a instalação, você poderá usar o comando abaixo:

sudo docker logs -f oracle19c
Screenshot from 2022 04 26 21 16 36

Ou utilizar alguma GUI para Docker. Eu utilizo o excelente portainer.

Screenshot from 2022 04 26 21 30 27
Screenshot from 2022 04 26 22 00 16

E a instalação continua até a sua finalização…

Screenshot from 2022 04 27 15 21 37
Screenshot from 2022 04 27 20 32 35 1

Instalação concluída com sucesso !!!

Agora vamos verificar se o listener esta no ar. Primeiramente, precisamos acessar o interactive shell do container. Para isso, execute o comando abaixo:

sudo docker exec -it oracle19c /bin/bash
Screenshot from 2022 04 30 17 32 41

Pra verificar o listener, execute o comando abaixo:

lsnrctl status
Screenshot from 2022 04 27 15 53 03
Screenshot from 2022 04 27 15 53 23

Banco e listener no ar !!!

Agora vamos abrir o SQL Developer e testar a conexão.

Se você não possui o SQL Developer instalado e não sabe como fazê-lo, leia o meu artigo abaixo que explica sobre todos os passos necessários para o SQL Developer rodar no seu Ubuntu.

Abrindo uma conexão com o Oracle 19c.

Screenshot from 2022 04 27 21 17 01 1

Failure -Test failed: IO Error: Got Minus one from a read call

O erro acima é resultado de um bug da versão 19.3.0 que afeta exclusivamente as conexões via JDBC. Felizmente, há um workaround para que o SQL Developer possa contornar esse problema.

Para isso, precisaremos alterar o arquivo ide.conf e incluir o seguinte AddVMOption nele:

AddVMOption -Doracle.net.disableOob=true

Na minha instalação, ele fica no diretório /opt/sqldeveloper/ide/bin

Screenshot from 2022 04 28 20 06 45

Salvemos o arquivo, iniciemos uma nova sessão do SQL Developer e tentemos novamente abrir uma conexão com nosso Oracle 19c.

Screenshot from 2022 04 28 20 13 58

Sucesso !!!!!

Screenshot from 2022 04 28 20 14 28

Meus parabéns ! O seu banco de dados Oracle 19c está completamente no ar e acessível !!!

Uma última dica. Caso você queira fazer alguma alteração no sqlnet.ora ou no listener.ora ANTES de criar a sua imagem, basta alterar o arquivo createDB.sh que fica no diretório /docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0 e incluir as opções que desejar nesses dois arquivos.

Screenshot from 2022 04 27 18 01 19 1
Screenshot from 2022 04 27 18 00 45

Bom pessoal, é isso ! Espero que este artigo seja de grande ajuda a aqueles que estão iniciando os seus estudos com Docker e Oracle.

Referências

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 5 / 5. Contagem de votos: 33

Sem votos ! Seja o primeiro a classificar !

3 comentários em “Como rodar o Oracle 19c em um container Docker – Tutorial completo”

  1. Avatar de Monalisa

    #11 ERROR: error committing b4tlsxiqf1h6a4522kq2x03s2: write /var/lib/docker/buildkit/metadata_v2.db: read-only file system

    > [builder 2/2] RUN chmod ug+x /opt/install/*.sh && sync && /opt/install/installDBBinaries.sh ee:

    error committing b4tlsxiqf1h6a4522kq2x03s2: write /var/lib/docker/buildkit/metadata_v2.db: read-only file system

    ERROR: Oracle Database container image was NOT successfully created.
    ERROR: Check the output and correct any reported problems with the build operation.

    Esta gerando esse erro, consegue ajudar?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress