Article image
Diogo Valente
Diogo Valente09/02/2024 11:37
Compartilhe

Descomplicando Docker

    O Docker é uma plataforma de software que ajuda a criar, implantar e executar aplicativos em contêineres.

    Um contêiner é uma unidade de software que inclui todo o código necessário para executar um aplicativo, incluindo bibliotecas, dependências e configurações. Os contêineres são leves e portáteis, o que significa que podem ser executados em qualquer lugar, independentemente do sistema operacional ou ambiente de hospedagem.

    Uma imagem é um modelo de um ambiente de aplicativo, enquanto um contêiner Docker é uma cópia em execução desse ambiente, isolado do sistema host e de outros contêineres em execução. Cada contêiner é criado a partir de uma imagem e pode ser personalizado com configurações e variáveis de ambiente específicas.

    Benefícios :

    • Escalabilidade: O Docker permite que os aplicativos sejam escalados rapidamente, adicionando mais contêineres conforme necessário. Isso significa que os aplicativos podem lidar facilmente com picos de tráfego ou demanda, sem comprometer o desempenho.
    • Portabilidade: Os contêineres do Docker são portáteis, o que significa que podem ser executados em qualquer lugar, independentemente do sistema operacional ou ambiente de hospedagem. Isso torna mais fácil mover aplicativos entre diferentes ambientes de desenvolvimento, teste e produção.
    • Consistência: O Docker ajuda a garantir que os aplicativos funcionem de maneira consistente em diferentes ambientes, o que é especialmente útil em ambientes de desenvolvimento e produção. Isso significa que os desenvolvedores podem ter mais confiança de que seus aplicativos irão se comportar da mesma maneira em diferentes ambientes.
    • Segurança: Os contêineres do Docker são isolados uns dos outros e do host do sistema, o que ajuda a aumentar a segurança. Isso significa que, se um contêiner for comprometido, os outros contêineres e o host do sistema ainda estarão protegidos.
    • Eficiência: O Docker permite que vários aplicativos sejam executados simultaneamente no mesmo sistema, sem conflito de dependências ou bibliotecas. Isso ajuda a economizar recursos de sistema e aumentar a eficiência. Além disso, os contêineres do Docker são leves e rápidos de inicializar, o que significa que os aplicativos podem ser implantados rapidamente.

    Principais comandos:

    • docker pull "nome da imagem" :: Baixar uma imagem do dockerhub.
    • docker run "nome da imagem" :: Executar um container a partir de uma imagem.
    • docker build :: Criar uma nova imagem Docker a partir de um Dockerfile.
    • docker ps :: É usado para listar os contêineres em execução no sistema Docker.
    • docker ps -a :: É usado para listar todos os contêineres, incluindo aqueles que estão parados ou foram finalizados
    • docker image :: É usado para listar todas as imagens Docker disponíveis no sistema local.
    • docker start "nome ou id do container" :: Iniciar um ou mais contêineres do Docker que foram parados anteriormente
    • docker stop "nome ou id do container" :: É usado para parar um ou mais contêineres em execução no sistema Docker
    • docker exec -it "nome ou id do container" :: Serve para acessar um contêiner em execução e executar comandos dentro dele.
    • docker exec -it "id do container ubuntu" bash :: Serve para acessar um contêiner Ubuntu em execução e iniciar um shell interativo dentro dele.
    • docker port "nome ou id container" :: Mostrar o mapeamento de portas do container.
    • docker run -d -p 8080:80 "nome do container" :: É usado para definir a porta em que o contêiner irá escutar e a porta do host que será mapeada para a porta do contêiner. Por exemplo, se você tiver uma imagem Docker que executa um servidor da Web na porta 80, colocar a tag -p 8080:80 o host será mapeada para a porta 80 do contêiner, permitindo que você acesse o servidor da Web por meio do endereço http://localhost:8080.

    Exemplo de Dockerfile para aplicação Java Springboot:

    FROM openjdk:17-alpine

    RUN addgroup -S spring && adduser -S spring -G spring

    USER spring:spring

    ARG JAR_FILE=target/*.jar

    COPY ${JAR_FILE} app.jar

    ENTRYPOINT ["java","-jar","/app.jar"]

    Compartilhe
    Comentários (0)