Docker Kullanımı 101
Merhaba, ÇözümPark Bilişim Portalında yazmış olduğum ilk yazıya hoşgeldiniz. Bu yazımda docker a başlamak isteyen ve başlangıç komutlarını hızlıca bakmak isteyenlar için bir yazı paylaşıyorum. Eklemek istediğiniz yada hatalı olarak gördüğünüz bir nokta var ise yorumda belirtirseniz mutlu olurum.
Bu Yazımda Docker’ın kurulumu, docker üzerinde genel komutlardan,imajda yapabilecegimiz işlemlerden,Network komutlarından, Volume yapısından ve son olarak ekstra olarak bir sciprt bırakıyorum. Bu konuları temel olarak ele aldım, iyi okumalar.
[101.1] Debian 10 a docker kurulumu
Merhaba, bu makalede Docker, docker compose ve docker machine’i kuracagız.
İlk olarak docker ı indiriyoruz script ile
curl -fsSL get.docker.com -o get-docker.sh
Sonrasında o sh dosyasını kurmak için
sh get-docker.sh
Ve bu komutla docker ı indirmiş ve kurmuş oluyoruz.
Docker Machine
Docker Machine kurmak için ise
base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine
Komutlarını yapıştırmamız yeterli olacaktır.
Docker Compose
Docer compose kurmak için
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
komutu ile indiriyor ve bin altına yerleştiriyoruz.
chmod +x /usr/local/bin/docker-compose
komutu ile izinleri ayarlamış ve kurulumu bitirmiş oluruz.
Dogru kurulup kurulmadıgını kontrol etmek için Docker , Docker-machine versiyon komutları ile kontrol edilebilir.
[101.2] Docker Genel Kontrol Komutları
docker info Docker ile ilgili bilgi çıktısı veriyor.
docker versiyon docker server ve client ile ilgili detaylı biilgi veriyor.
docker containers ls Containerleri listeliyor çalışan
docker container ls -a :: çalışmayan tüm containerlere listeliyor
docker container logs [Container Adı] ismi verilen container ın loglarını inceleme
docker container stop [Container Adı] Containerı durdurma
docker container rm [Container Adı] Containerı silme
-f ile opsiyonu ile zorla o containerı siler.
docker containers run –publish 8080:80 [Container Adı] bu komut ile container’I çalıştırmış ve işerideki 80 portunu dışarıya 8080 olarak açmış oluyoruz.
— name isim veriyor
-p 8080:80 parametresi ile içeride 80 portunda olan uygulamayı dünyaya 8080 portundan açtıgımız anlamına geliyor.
-d login olmadan direk çalışıyor.
docker rename [Container Adı] [Yeni Container Adı] containerın adını degiştirmek için kullanılan komutdur.
[101.3] Docker İmaj komutları
docker search [Container Adı] :: Container/imaj aratmaya yarayan komutdur.
Eklenebilir Opsiyonlar
–all , -a Bütün containerları listeler
–filter , -f Kondisyona göre çıktıları filtreler
–format Pretty-print formatında containerları listeler
–last , -n -1 “n” tane oluşturulmuş son containerları listeler
–latest , -l Oluşturulmuş son containerları listeler
–no-trunc Çıktıyı olduğu gibi basmaya yarar (bkz. Truncation)
–quiet , -q Sadece IDleri gösterir
–size , -s Toplam dosya boyutlarını gösterir
docker pull [Container Adı] :: bulduğumuz container/imajı indirmek için kullanılan komut.
[101.4] Docker Network Komutları
docker network create -d bridge [Network Adı] otomaik bağlanılan ağdır container ilk oluşturulduğunda ona bağlanır.
docker network create -d overlay [Network Adı] özel olarak oluşturulan ağdır. özellikle containerların bağlanması gerekir
docker network ls Ağların listelenmesi
docker network rm [Network Adı] Ağların silinmesi
docker network ls Ağların listelenmesi
docker network inspect [Network Adı] Ağ hakkında detaylı bilgilerin listelenmesi
docker network connect [Network Adı] [Container Adı] caontainerın belirli network e bağlanması
docker network disconnect [Network Adı] [Container Adı] :::Containerın ağdan çıkarılması
Eklenebilir Opsiyonlar
–subnet=192.168.0.0/16 \
–subnet=192.170.0.0/16 \
–gateway=192.168.0.100 \
–gateway=192.170.0.100 \
–ip-range=192.168.1.0/24 \
–aux-address=”my-router=192.168.1.5″ –aux-address=”my-switch=192.168.1.6″ \
–aux-address=”my-printer=192.170.1.5″ –aux-address=”my-nas=192.170.1.6″ \
[101.5] Docker Volume
docker volume create [Volume Adi]
Eklenebilir Opsiyonlar
–driver , -d Volume için driver adı tanımlama
–label Volume için metadata tanımlama
–name Volume adı tanımlama
[101.6] Docker Genel silme komutları
docker volume prune [Volume Adı] Kullanılmayan volumeların hepsini silme
docker rm -v redis Containerı volume ile beraber silme
docker rm $(docker ps -a -f status=exited -q) Kapatılmış bütün containerların silinmesi
docker rm `docker ps -a -q` / docker rm $(docker ps -a -q) Durdurulmuş bütün containerların silinmesi
docker rmi $(docker images -f dangling=true -q) Dangling olan bütün imagelerin silinms
docker rmi $(docker images -a -q) Bütün imagelerin silinmesi
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) Bütün containerların durdulması ve silinmesi
docker volume rm $(docker volume ls -f dangling=true -q) Dangling olan bütün volumeların silinmesi
Ekstra
Buradaki script ile docker’ı ve portainer’ı otomatik olarak kurabilirsiniz.
#! /bin/bash
# apt-get update ; touch docker-kurulum.sh;chmod u+x docker-kurulum.sh;nano docker-kurulum.sh
# ./docker-kurulum.sh
echo "===================================================="
echo " Yükleme Başladı "
echo "==================================================="
apt-get update
apt-get -y install curl
curl -fsSL get.docker.com -o get-docker.sh &&
sh get-docker.sh&&
base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
mv /tmp/docker-machine /usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine &&
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose &&
chmod +x /usr/local/bin/docker-compose &&
docker volume create portainer_data
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
echo "===================================================="
echo " Yükleme Bitti "
echo "===================================================="
Kaynakça;
https://www.udemy.com/course/docker-tr/
https://medium.com/kodgemisi/docker-etkili-kullanmak-icin-komutlar-93faf9329142
Teşekkür ederim Enes bey
Hayırlı olsun, başarılarının devamını dilerim. Docker a merak duyanlar için güzel bir çalışma olmuş, ağzına sağlık…
Değerli yorumunuz için teşekkür ederim.
Eline sağlık, aramıza hoş geldin.
Teşekkür ederim. Hoşbuldum
Öncelikle emekleriniz için teşekkürler. Ama docker ile ilgili makalelerinize docker nedir sektörde hangi problemi çözer onu diğer çözümlerden farklı kılan nedir konularını öne alıp başlamış olsaydın daha faydalı olurdu diye düşünüyorum.
Degerli yorumunuz için teşekkür ederim, diger yazımda bunları göz önünde bulundururak yazacagım. teşekkür ederim