Docker

Rodar aplicação “server” em um contêiner e a “client” em outro no docker.

Pelo que entendi você vai rodar a Aplicação “server” em um contêiner e a “client” em outro. Fazendo a comunicação via rede e guardando os dados no volume criado.

Então assim que você criar a imagem de cada um, server e client é só dar start/run.

docker run servidorJava
docker run clientJava

Não sei se isso resolve seu problema?

O docker run não trava o terminal então você pode rodar os dois no mesmo.

1 curtida

Olá amigo, se você já tem as imagens para utilizar, segue um exemplo para realizar a comunicação entre dois containers.

Crie sua rede

docker network create --driver bridge minha_rede

Listar suas redes docker e visualize que a rede “minha_rede” foi criada

docker network ls

Inicializer o continer Server

docker run -d --name servidor --net minha_rede Server:Latest

Inicialize o container Client

docker run -d --name cliente --net minha_rede Client:Latest

Acesse o terminal do container Server

docker exec -it servidor /bin/bash

Acesse o terminal do container Client

docker exec -it cliente /bin/bash

1 curtida

Monta um compose!!! Super facil.

1 curtida

sabe se preciso alterar meu host do windows para rodar meu java rmi no docker?

Só para entender melhor. Nessa linha o servidor é nome que vc colocou no seu rmi por exemplo no lugar de localhost? e o Server é o nome da minha imagem do servidor?

docker run -d --name servidor --net minha_rede Server:Latest

Não sei te informar, eu utilizo o sistema operacional Ubuntu para executar o Docker.

1 curtida

O “–name servidor” servirá para comunicação na rede, no lugar do endereço IP do container, assim o cliente não precisa conhecer o IP do Server.

ex:
No terminal do container cliente, para realizar um ping no Server, bastaria utilizar o nome servidor
ping servidor

O Server é o nome da imagem, pode ser qualquer nome que você tenha dado.

Qualquer dúvida pode pergunta.

Tenho minha imagem server e meu client, estou fazendo em cima do openjdk. Já criei a minha_rede e fiz para o servidor:

docker run -d --name servidor --net minha_rede server:latest

Ele responde:

383f2a9ef99e19f50e4605e…
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused “exec: “executar.sh”: executable file not found in $PATH”: unknown.

Dentro do executar.sh está assim:

#!/bin/bash

rmiregistry &
java StartFileServer

Sendo assim o erro é a minha aplicação java rmi?

Parece que não está conseguindo encontrar o script, tente realizar o comando assim

docker run -d --name servidor --net minha_rede server:latest /bin/bash /caminho/executar.sh

Substituir caminho pelo o caminho dentro do container, local do script.

1 curtida

Um forma de encontrar o erro, seria inicializar um conatiner openjdk

docker run -d --name teste openjdk:lastest

Copiar o seus arquivos para o container

docker cp [pasta ou arquivo] [nome-do-container:/caminho]

Entrar no container

docker exec -it teste /bin/bash

Encontre seus arquivos dentro do container e execute o script

./executar.sh

Observe se acontecer algum erro

Assim deu certo a parte as partes de iniciar o servidor e o cliente com o caminho, porém depois quando executo:

docker exec -ti servidor/bin/bash

dá esse erro:

“docker exec” requires at least 2 arguments.
See ‘docker exec --help’.

Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

Run a command in a running container

No comando o nome do conatiner está junto com o caminho do bash, tente assim:

docker exec -ti servidor /bin/bash

1 curtida

Muito obrigado amigo!

De nada amigo, espero que tenha resolvido o seu problema :v:

Bom dia amigo!
Para que serve e como uso o PING no docker?

A execução é feita da seguinte forma: Acesse o terminal do seu container e execute o comando ping em algum endereço externo válido que seu container precise se comunicar.

O ping serve para saber se o seu container está conseguindo se comunicar com hosts externos, se os pacotes estão sendo enviados e recebidos com sucesso.

Muito obrigado pela explicação, entendi!

Boa tarde, como faço pra instalar e executar o PING no DOCKER pra Windows?