Gravação de vídeo de Docker para desenvolvedores Java webinar já está disponível:

Aqui estão as respostas para as perguntas feitas:

  • O que você acha do Kubernetes em comparação com Docker e Docker Swarm? Kubernetes ou Docker Swarm? Qual caminho seguir?Depende ;)O Docker Swarm tem uma curva de aprendizado muito mais simples do que o Kubernetes. O Kubernetes é muito opinativo, mas pode ser muito poderoso quando você entende como ele funciona. Alguns dos pontos que vale a pena considerar são:
    • Fácil de configurar/iniciar
    • Necessidade de aprender novos conceitos ou alinhamento com o Docker
    • Como ele pode ser alinhado com seu fluxo de trabalho atual?
    • Mestre único ou múltiplo
    • Suporte para várias nuvens
    • Agrupamento em várias nuvens
    • Aumento/diminuição de escala dinâmica
    • Reprogramação de contêineres em caso de falha de nó/contêiner
    • Estratégias de agendamento com capacidade de conexão (se você quiser ser sofisticado)
    • Descoberta de serviços
    • Volumes persistentes

    Se essa pergunta foi feita há alguns meses, então Kubernetes teria sido a escolha óbvia. Mas o Docker Swarm está realmente lançando versões e recursos e está bem atualizado. Dê uma olhada em O Docker Swarm supera o desempenho do Kubernetes em escalaHackernews também tem algumas discussões interessantes sobre esse tópico. Leia também Avaliação de plataformas de contêineres em escala.

    Além disso, você também deve observar Mesos+Marathon ou DC/OS.

    Aqui estão alguns blogs para começar:

  • Qual é a prática recomendada para desenvolver em um contêiner do docker WildFly se você não quiser agrupar o arquivo WAR após cada alteração, mas usar um arquivo explodido para apenas reempacotar recursos estáticos, por exemplo? O Docker permite mapeamento de diretórios em seu sistema de arquivos como volumes no contêiner. Isso pode ser usado para desenvolver seu aplicativo em um contêiner do WildFly sem a necessidade de agrupar o WAR a cada alteração. Isso é explicado com mais detalhes em Implantar no WildFly Docker a partir do Eclipse.
  • O IntelliJ Idea é compatível com a janela de encaixe nativa no Mac OS/Windows?Andrey: Ainda não, mas está no roteiro.
  • Quais são os prós e os contras de fornecer uma variável de ambiente em vez de um link como consul:consul? Os Docker Links são legados e, portanto, as variáveis de ambiente e Rede Docker são a maneira recomendada de criar novos aplicativos. Leia mais detalhes em outra resposta abaixo.
  • Como podemos anexar um depurador a um processo Java em execução em um contêiner? Leia este excelente artigo do blog de Daniel Bryant sobre Depuração de aplicativos Java em execução no Docker.
  • Qual é a relação entre o Docker e o Vagrant? Ambos podem trabalhar juntos? O Docker é um substituto do Vagrant?O Docker e o Vagrant resolvem problemas diferentes. O Vagrant permite que você provisione máquinas virtuais independentemente da máquina host. Isso é feito com o uso de um hipervisor, como o VirtualBox. A definição da VM é armazenada em um arquivo Vagrantfilee define como configurar a VM e quais scripts devem ser usados para provisionar o ambiente. Essas VMs podem ser criadas no Linux, Windows ou Mac. O Docker permite a criação de contêineres. É uma tecnologia nativa do Linux baseada em lxc e chegará ao Windows Server 2016 neste verão. O Docker para Mac oferece um ambiente de desenvolvimento para Mac. Vagrantfile que provisiona o Ubuntu ou o CentOS usando o Virtual Box. Em seguida, execute apt get ou yum install para instalar o Docker Engine. Se uma nova versão do Docker Engine estiver disponível, você será responsável por atualizar também a imagem do Vagrant ou executar o script novamente. Outra opção é usar o Docker Machine e o driver do VirtualBox para criar uma máquina que terá o Docker Engine instalado. O máquina de encaixe O script tem comandos como upgrade, que simplesmente atualiza o Docker Engine. Algumas discussões mais interessantes estão em StackOverflow e QuoraPara tornar toda essa equação ainda mais interessante, O Vagrant pode ser apoiado por contêineres do Docker em vez de VMs!
  • A janela da ferramenta Docker está faltando no meu IntelliJ IDEA 15. O plug-in está instalado.Andrey: A janela de ferramentas separada foi adicionada na versão 2016.1. Antes disso, o Docker fazia parte da janela de ferramentas dos Servidores de aplicativos.
  • É possível alterar o index.jsp e ver a alteração no navegador sem criar a imagem novamente? No espírito da ação de atualização de recursos no IntelliJ IDEA? Andrey: Parece uma ótima ideia. Envie-a como uma solicitação de recurso para o rastreador: https://youtrack.jetbrains.com/issues/IDEA.
  • Há um aumento de desempenho no uso do xhyve/Hyper-V em relação ao VirtualBox? O Docker para Mac executa o Docker Engine na distribuição Alpine Linux em cima da Máquina Virtual xhyve para Mac OS X ou no Hyper-V no Windows. Hypervisor.framework no OS X 10.10+. Algumas das principais vantagens de usar uma tecnologia nativa em vez de um hipervisor Tipo 2 são a aparência nativa, o melhor desempenho e o melhor gerenciamento de volume. benchmarks de driver xhyve vs VirtualBox. Essa área está evoluindo rapidamente e fique de olho blog.docker.com para obter mais detalhes.
  • Em Docker ComposeComo faço para atualizar apenas um contêiner? Ele perde o "link" e eu preciso reimplantar tudo? Os links do Docker agora são legados. É altamente recomendável migrar seu aplicativo para usar Rede Docker. O Principal diferença entre links e redes são:
    1. Conecte os contêineres uns aos outros em diferentes hosts físicos ou virtuais
    2. Os contêineres que usam o Networking podem ser facilmente interrompidos, iniciados e reiniciados sem interromper as conexões com outros contêineres
    3. Não é necessário criar um contêiner antes de se vincular a ele. Com o Networking, os contêineres podem ser criados em qualquer ordem e descobrir uns aos outros usando seus nomes de contêineres
  • Como é possível expor uma porta de host a um contêiner em execução no host? As portas em um contêiner são expostas no host usando -p com a execução do docker. As portas no host podem ser acessadas usando : diretamente.
  • A imagem oficial do Java Docker (baseada no OpenJDK) não é certificada pelo TCK. O que você sugere nesse caso? O OpenJDK é a implementação de referência do Java SE e, portanto, é compatível com o TCK. Imagem oficial do Java Docker é baseado no OpenJDK.Azul Systems fornecer suporte comercial para o OpenJDK. Outra opção é usar Imagens do OpenJDK disponíveis nos sistemas da Azul. São compilações totalmente testadas e com compatibilidade verificada das versões mais recentes das plataformas OpenJDK 8, 7 e 6. A Oracle publica o Dockerfile para o JDK, mas não publica as imagens. Observe que essa definição usa oraclelinux:latest como a imagem base e você pode querer usar ubuntu, centos ou alpino. Nesse caso, você pode criar seu próprio Dockerfile. Executando Java no Docker? Você está infringindo a lei fornece um bom resumo de por que a imagem baseada em Oracle JDK não deve ser enviada para o Docker Hub.
  • Como fazer com que um contêiner com o WildFly use um contêiner com o banco de dados em outro servidor? Links do Docker são legados e só permitem que os contêineres se comuniquem entre si no mesmo host. A maneira recomendada de dois contêineres se comunicarem é usando Redes DockerPor padrão, o cluster do Docker Swarm cria um rede de sobreposição que permite que vários contêineres se comuniquem entre hosts.Aplicativos com vários contêineres e vários hosts usando WildFly e Couchbase mostra como conectar o WildFly ao Couchbase, onde cada contêiner é executado em dois hosts separados em um cluster do Docker Swarm. Aqui está o arquivo Compose para referência:

Aqui estão mais algumas referências:

Autor

Postado por Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase

Arun Gupta é o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experiência na liderança de equipes multifuncionais para desenvolver e executar estratégias, planejamento e execução de conteúdo, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e é membro fundador da equipe Java EE. Gupta é autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experiência em palestras em mais de 40 países sobre diversos tópicos e é um JavaOne Rock Star há três anos consecutivos. Gupta também fundou o capítulo Devoxx4Kids nos EUA e continua a promover a educação tecnológica entre as crianças. Autor de vários livros sobre tecnologia, corredor ávido, viajante do mundo inteiro, campeão de Java, líder de JUG, membro do NetBeans Dream Team e capitão do Docker, ele pode ser facilmente acessado em @arungupta.

Deixar uma resposta