Kubedo Academy’e hoş geldiniz! Bu laboratuvarda Docker’ın yazılım geliştiriciler için nasıl kullanılacağını öğreneceksiniz.
Zorluk seviyesi: Başlangıç
Süre: Yaklaşık 30 dakika
İçindekiler
1. Lab için Gerekli Hazırlık
GitHub Deposunu Klonlama
$ git clone https://github.com/dockersamples/linux_tweet_appDockerID Oluşturma
Bir DockerID’niz yoksa Docker Hub üzerinden ücretsiz kayıt olun.
2. Basit Docker Container’ları Çalıştırmak
Container’ları üç farklı amaç için kullanabilirsiniz:
| Kullanım | Açıklama |
|---|---|
| Tek görev | Shell script veya uygulama çalıştırma |
| İnteraktif | Container’a bağlanıp komut çalıştırma |
| Arka plan | Web sunucuları, veritabanları |
Alpine Container’da Tek Görev
$ docker container run alpine hostnameİnteraktif Ubuntu Container
$ docker container run --interactive --tty --rm alpine /bin/ashParametreler:
--interactive: İnteraktif oturum--tty: Pseudo-TTY oluşturur--rm: İşlem bitince container’ı siler
Arka Planda MySQL Container
$ docker container run \
--detach \
--name mydb \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
mysql:latestContainer loglarını görüntüleme:
$ docker container logs mydbContainer içinde komut çalıştırma:
$ docker exec -it mydb sh3. Bir Uygulamayı Docker ile Paketlemek ve Çalıştırmak
Dockerfile İnceleme
$ cd ~/linux_tweet_app
cat DockerfileFROM nginx:latest
COPY index.html /usr/share/nginx/html
COPY linux.png /usr/share/nginx/html
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]
Dockerfile Komutları
| Komut | Açıklama |
|---|---|
FROM | Temel imaj |
COPY | Dosyaları container’a kopyalar |
EXPOSE | Açılacak portları belirtir |
CMD | Başlangıç komutu |
İmaj Oluşturma
DockerID’nizi ortam değişkeni olarak kaydedin:
export DOCKERID=<your_docker_id>
İmajı oluşturun:
$ docker image build --tag $DOCKERID/linux_tweet_app:1.0 .Container Çalıştırma
$ docker container run \
--detach \
--publish 80:80 \
--name linux_tweet_app \
$DOCKERID/linux_tweet_app:1.0[!NOTE]
--publish 80:80parametresi host’un 80 portunu container’ın 80 portuna yönlendirir.
4. Çalışan Bir Web Sitesini Değiştirmek
Bind Mount Kullanımı
Bind mount ile yerel dosya sistemini container içine bağlayabilirsiniz:
$ docker container run \
--detach \
--publish 80:80 \
--name linux_tweet_app \
--mount type=bind,source="$(pwd)",target=/usr/share/nginx/html \
$DOCKERID/linux_tweet_app:1.0Dosyaları değiştirin ve değişiklikleri anında görün:
$ cp index-new.html index.html[!TIP] Bind mount geliştirme ortamı için idealdir. Üretim ortamında imaj içine kodları gömmelisiniz.
Yeni Sürüm Oluşturma
$ docker image build --tag $DOCKERID/linux_tweet_app:2.0 .Docker Hub’a Yükleme
docker login
docker image push $DOCKERID/linux_tweet_app:1.0
docker image push $DOCKERID/linux_tweet_app:2.0