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.
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
Monta um compose!!! Super facil.
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.
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.
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
Muito obrigado amigo!
De nada amigo, espero que tenha resolvido o seu problema 
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?