İlk olarak, örnek uygulama kodunu indirerek oluşturduğum Git depoma yükledim. Github kullandım.
Dockerfile'ı oluşturmak için aşağıdaki adımları takip ettim:
Yeni bir metin dosyası oluşturdum ve Dockerfile adını verdim. Dockerfile'a aşağıdaki metni ekledim:
FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python3", "app.py"]
Dockerfile'ı kaydettim.
Docker image'ını oluşturmak için aşağıdaki adımları takip ettim:
Terminal'de cd komutunu kullanarak Dockerfile'ın bulunduğu dizine gittim. "docker build -t bc4m ." komutunu çalıştırdım. docker images komutunu çalıştırdım ve bc4m image'ının oluşturulduğunu doğruladım. docker push bc4m komutunu çalıştırdım ve bc4m image'ını Docker Hub'a yükledim.
Docker container'ı çalıştırmak için aşağıdaki adımları takip ettim:
Terminal'de "docker run -p 5000:5000 bc4m" komutunu çalıştırdım. Web tarayıcımı açıp "localhost:5000" adresine gittim. Örnek uygulamanın çıktısını gördüm:
{"msg":"BC4M"}
CMD verilen bir komutu container ayağa kalktıktan sonra çalıştırmak için kullanılır. RUN ise image içinde komut çalıştırmak için kullanılır.
O yüzden image içinde yükleme yaparken yani program install ederken RUN komutunu kullanırız yükledikten sonra o process'i çalıştırmak içinse CMD yi kullanırız.
Docker, yazılım uygulamalarını hızlı ve taşınabilir bir şekilde paketlemek, dağıtmak ve çalıştırmak için kullanılan açık kaynaklı bir konteynerizasyon platformudur. Docker, uygulamaları bir çeşit konteyner olarak adlandırılan izole edilmiş ortamlarda çalıştırmanızı sağlar. Her konteyner, çalıştığı sistemden bağımsız olarak, gereksinimleriyle birlikte tüm uygulama ve bileşenlerini içerir.
Docker içindeki bazı komutların anlamları şu şekildedir:
'docker run' : Docker imajından yeni bir konteynır başlatır.
'docker build': Dockerfile kullanarak Docker imajı oluşturur.
'docker pull': Docker imajını uzaktan indirir.
'docker push': Docker imajını uzaktaki bir imaj deposuna yükler.
'docker stop': Çalışan bir konteynırı durdurur.
'docker exec': Çalışan bir konteynır içinde komut çalıştırır.
'docker rm': Durmuş olan bir konteynırı siler.
'docker images': Docker imajlarını listeler.
'docker ps': Çalışan konteynırları listeler.