Docker kullanabilmek için öncelikle bilgisayarımıza docker’ı indirip kuruyoruz. https://docs.docker.com/get-docker/ adresine giderek işletim sistemine uygun paketi indirip kuralım.
Spring Boot uygulamasını Docker Container İçinde Çalıştırma
Spring intializer ile temel bir proje oluşturalım. Dependency olarak data jpa, web, postgresql ve lombok ekleyelim. Proje adı docker-test.

Rest Controller ekleyerek bir api oluşturalım ve buna ulaşmaya çalışalım.

bir entity sınıfı oluşturalım.

application.properties içinde yapılandırmaları yapalım.
spring.jpa.hibernate.ddl-auto = update
spring.datasource.url=jdbc:postgresql://localhost:5432/dockerTest
spring.datasource.username=<userName>
spring.datasource.password=<password>
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
Dockerfile dosyasını oluşturalım. Window üzerinde jdk 17 kullanıyorum.
FROM eclipse-temurin:17-jre-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Veritabanında sehir tablosuna insert into ile 3 adet şehir ekleyelim. postman’de http://localhost:8080/cities ile bu kayıtlarımızı json formatında görelim.
komut satırında projenin bulunduğu klasöre git.
“docker build -t imageName .” diyerek image oluştur.
“docker run -p 8080:8080 imageName” ile bu image’i bir container üzerinde çalıştır.
Proje üzerinde değişiklikler yaptık ve yeni bir image oluşturup çalıştırmak istiyoruz.
Run as -> maven clean ardından maven install diyelim.
“docker ps -a” ile mevcut containerları görüntüle. Mevcut çalışan container’ı elle durdurmadıysan “docker stop <container_id>” komutunu çalıştır. Container durduktan sonra “docker rm <container_id>” ile container’ı sil.
“docker images” ile mevcut image’leri görüntüle.
“docker rmi <image_id>” ile ilgili image’i sil.
Tekrar build ve run komutlarını çalıştırarak projeyi docker üzerinde çalıştır.
Docker imajını Docker Hub’a yükleme
https://hub.docker.com/ adresine git. Oturum aç.
Terminalde ‘docker login’ ile docker hub giriş işlemini yap.
docker build -t app.jar . diyerek imaj oluştur.
docker tag app.jar docker_hub_hesap_adi/myapp:v1 diyerek imajı etiketle.
docker push docker_hub_hesap_adi/myapp:v1 diyerek imajı docker hub’a yükle.
Proje github adresi : docker-springboot-basic