Asp.Net Core Web Uygulamasını Docker'da Çalıştırma , Docker’a Deploy Etme

  1. yvzsrht
    19
    149
    17.02.2020 11:03:00

    Docker Container üzerinde asp.net core web uygulaması çalıştırmak istiyorum.

    Ubuntu server üzerine Docker Container kurdum, bir tane basit asp.net core uygulaması oluşturdum. Şimdi ben bu uygulamayı local bilgisayarımdan, Ubuntu sunucusu üzerindeki Docker Container'a nasıl publish edebilirim ?

    docker ubuntu-server asp.net-core .net-core 1 ay önce 505 Görüntüleme

( 1 ) Cevap

  1. Snoopy
    18
    11571
    17.02.2020 12:33:00

    Merhabalar,

    Asp.net core ile geliştiridiğiniz uygulamanızı Docker Container'a deploy etmek için birden fazla yol vardır belki ama, ben kullandığım bir yöntemi paylaşacağım.

    Ben web uygulamasını Image haline getirip, Docker Hub' a Push edip, sonra ubuntu server a SSH üzerinden Pull ederek deploy etme yöntemini kullanıyorum. Aşağıda resimde olduğu gibi.

    docker deploy etme

    1) Bunun için öncelikle bir Docker Hup hesabınız olmalı ve bu hesabınızda bir Repository oluşturmanız lazım. Aşağıdaki siteden kayır olup bir repository oluşturun. Bu arada Docker Desktop (https://www.docker.com/products/docker-desktop) localinizde kurulu olması lazım.

    Örnek bir repository oluşturma

    docker hub repository oluşturma

    https://hub.docker.com/

    2) Daha sonra geliştirdiğimiz web uygulamasına geliyoruz. Geliştirdiğimiz projeyi Visual Studio 2019 da açıyoruz. Projeye sağ tıklıyoruz -> Add -> Docker Support diyoruz. Target Os yi Linux seçiyoruz.

    Bu sayede Dockerfile ımızı oluşturmuş oluyoruz.

    3) Şimdi geldik projemizin Image ını alıp Docker Hub'a push etmeye.

    Projeye sağ tıklıyoruz -> Publish -> Container Registry -> Docker Hub -> Crate Profil -> Docker Hub sitesi üzerinde oluşturduğumuz Repository'nin kullanıcı adı ve şifresini giriyoruz Save diyoruz.

    Registry for storing and deploying docker images

    4) Profilimizi oluşturduk, Publish diyince Image imiz Docker Hub daki Respositoryimize Push edilecek.

    5) Bu adımda Docker Hub daki Image'imizi Server'a Pull edeceğiz ve uygulamayı ayağa kaldıracağız.

    Önce local bilgisayarımızdan veya artık Image imiz Docker Hub ta, bu yüzden uygulamayı geliştirdiğimizin dışında bir bilgisayar da olabilir, Windows PowerShell'i başlatıyoruz.

    Bu komutla Ubuntu/Linux server'a bağlanıyoruz

    > > ssh serverusername@192.192.192.192

    192.192.192.192 yerine sizin kendi sunucu ip adresiniz yer alacak.

    Şifre varsa Şifre isteyecek, server kullancı şifresini gireceksiniz.

    Şifreyi girdikten sonra artık Ubuntu Server'a bağlandınız, Image imizi Docker Hub üzerindeki Repository'imizden Pull edeceğiz.

    > docker pull dockerhub_kullaniciadi/dockerhub_repository_adi

    buraya kendi hub kullanıcı adımızı ve repository adımızı yazıyoruz, not: repository public olmalı

    Daha sonra Docker Container'ımızdaki Imageleri docker Images komutu ile görmek istersek görebiliriz.

    Şimdi Image imizi run edelim. Şu komutu giriyoruz;

    docker run -d  -p  8082:80  --name   uygulama_adi   kullaniciadi/dockerhub_repository
    

    uygulamamız 8082 portunda çalışacağını ayarladık ve uygulamamızı run ettik.

    komut satırına docker ps yazıp çalıştırırsak, uygulamamızın docker üzerinde çalışan diğer uygulamalarla beraber listelendiğini görebiliriz.

    Evet bu kadar, ilk uygulamamızı bu şekilde ubuntu server da Docker Container üzerinde çalıştırmış olduk.

    Server ip adresi şu olduğunu varsayarsak 192.192.192.192 ve bir tane WeatherForecast controller'ı olan bir asp.net core web api uygulamasını deploy etmiş isek, aşağıdaki link ile uygulamamıza erişebiliriz.

    http://192.192.192.192:8082/WeatherForecast

Cevabınız