Docker Install on Linux - Linux'ta Docker Kurulumu
Docker Install on Linux - Linux'ta Docker Kurulumu
Docker (CE) ve (EE) Hakkında.
- Docker Community Edition (CE): Dockerin ücretsiz ve açık kaynaklı topluluk sürümüdür. Bu sürüm, Docker'ın temel özelliklerini sunar ve birçok kullanıcının ihtiyaçlarını karşılar. Docker Community Edition, Docker'ın çeşitli platformlarda kullanılabilmesine olanak tanır ve Linux, macOS ve Windows işletim sistemleri dahil olmak üzere birçok platformda çalışabilir. Ayrıca, Docker Compose, Docker Swarm ve Docker CLI gibi araçları da içerir.
- Docker Enterprise Edition (EE): Docker'ın ücretli sürümüdür, işletme düzeyinde daha fazla özellik sunar ve özellikle büyük ölçekli ve karmaşık uygulamaları yönetmek için tasarlanmıştır. Ancak, Docker Community Edition'ın sunduğu özellikler, birçok kullanıcının ihtiyaçlarını karşılayabilir ve ücretsiz olarak kullanılabilir.
Aşağıdaki adımlarla Linux üzerinde Docker Engine Community(CE) 'ı kurabilir ve yönetebilirsiniz:
#Docker'i yükleyin:
https://docs.docker.com/engine/
https://docs.docker.com/engine/install/
#Docker'ı başlatın:
systemctl start docker
#Docker'ı yeniden başlatmak için:
systemctl restart docker
#Docker'ın otomatik olarak başlamasını sağlayın:
systemctl enable docker
#Docker'ın doğru şekilde yüklendiğinden emin olmak için:
docker version
docker --version
docker -v
docker info
systemctl status docker
#Docker temel Hello Word Uygulması:
docker run hello-world
#Docker'ı güncellemek için:
apt update
#apt upgrade
### Docker Komutları ###
#Docker'i sistem her yeniden başlatıldığında otomatik başlatmak için:
systemctl enable --now docker
#bu özelliği devre dışı bırakmak istersek:
systemctl disable --now docker
#Root haricinde Docker Engine'i çalıştırmak için kullanıcımızı Docker yetkili grubuna ekleyelim:
sudo usermod -aG docker faruk
#Yeni grup üyeliğini kullanıcımızda ve gruplarda görmek için(tek tek):
su faruk
groups
id faruk
getent group docker
#Mevcut Docker tüm komutları görüntülemek için:
docker
#Resmi Docker hesabınıza bağlanmak & çıkış yapmak için:
docker login
docker logout
#Docker Hub'da bulunan görüntüleri aramak:
docker search alpine
docker search httpd
-------------->>>
#Resmi docker imajlarını "hub.docker.com" üzerinden çekmek için:
docker pull ubuntu
docker pull httpd
docker pull nginx
--------------->>
#Belirtilen Imajı Docker Huba yüklemek için:
docker push geekflare/httpd_image
#İndirilen docker imajlarını görmek için:
docker images
#İmaj geçmişi ve bilgisi için(history):
docker history hello-world
#İmaj silmek için (rmi):
docker rmi hello-world
***(Bu Komut Docker'da bir imajın artık kullanılmamasını ve disk alanından kaldırılmasını sağlar. Ayrıca, bu imajı kullanan containerlar varsa, imaj silinemez. Öncelikle bu containerları durdurmanız ve silmeniz gerekir.)
#Containeri başlatmak için:
docker start "container-id"
#Containeri restart etmek için:
docker restart "container-id"
#Çalışan containeri durdurmak için:
docker stop "konteyner-id"
#Çalışan tüm Docker konteynerlerini durdurmak için:
docker stop $(sudo docker ps -aq)
#Containeri duraklatmak için:
docker pause "container-id
#Duraklamış Containeri devam ettirmek için:
docker unpause "container-id
#Çalışan containeri zorla durdurmak için (kill):
docker kill "container-id"
Tüm indirilen Docker imajlarını silmek için:
docker image prune
#docker image prune -a (varolan-kullanılan tüm imajları siler)
#### Imajdan Container oluşturma ve Çalıştırma
***İmaj indirildikten sonra Containeri Yarat & Calistir
1: docker run -p 8080:80 -d httpd
2: docker run --name webserver -p 80:80 httpd
3: docker run --name webserver -p 8091:80 -d httpd
4: docker run -it --name debshell debian:bookworm-slim bash
5: docker run -ti --name atom busybox sh
6:
7:
1: (Bu komut, httpd görüntüsünü kullanarak bir Docker "Containeri" oluşturur ve konteyneri arka planda (-d seçeneği) çalıştırır. Konteyner, ana bilgisayarınızdaki 8080 portuna (-p seçeneği) yönlendirilir ve Apache HTTP Serveri, Docker konteyneri içindeki 8080 portunda çalıştırılır) (http://localhost:8080)
#Docker imajınızı Editleyin ("Her container izole olduğu için" shell ile gerekli configleri yapmanız gerekmektedir.)
docker ps
docker exec -it 7d479d362e07 bash
docker exec -it admiring_keller bash
cd htdocs
nano index.html
##### Docker Container #####
#Sadece Çalışan containerleri listelemek için (ps):
docker ps
docker ps -q --format ' '
#Tüm Container durumlarını listelemek için
docker ps -a
****Belirli bir Containerin portunu değiştirmek için:"HostPort"
docker stop <container_name>
cd /var/lib/docker/containers/
sudo nano hostconfig.json (EDIT: "HostPort":"xxxx")
systemctl restart docker
docker start "container_name"
#İçeriklerin Kapsayıcılar ve Dosya Sistemi Arasında Kopyalanması
docker cp "container-id":/test_file test_file
#Bir Docker container'ının adını değiştirmek için:
docker stop "container_name"
docker rename "old_name" "new_name"
#Container silmek için: ***Çalışan containeri silmek için öncelikle durdurulmalısınız.
docker rm "container-id"
***Tüm containerleri ve kalıntılarını silmek için:
#docker rm $(docker ps -aq)
#docker system prune
#Containerleri ile ilişkili birimleri kaldırmak için:
docker rm -v "container-id"
###Docker Machine###
#Yeni bir Docker host'u oluştur
docker-machine create --driver virtualbox my-docker-host
#Mevcut Docker host'larını listele
docker-machine ls
#Belirli bir Docker hostu yönet
docker-machine start my-docker-host
docker-machine stop my-docker-host
docker-machine rm my-docker-host
docker-machine ip my-docker-host
docker-machine ssh my-docker-host
docker-machine status my-docker-host
.etc
##### Docker Networks #####
https://docs.docker.com/network/
https://docs.docker.com/network/drivers/
#Docker Ağları Listeleyin
docker network ls
NETWORK ID NAME DRIVER SCOPE
1d075808d17d bridge bridge local
8ca7e7ba3955 docker_gwbridge bridge local
df16d664448e host host local
kw2zazyf52tp ingress overlay swarm
fd0cb697dddb none null local
5d45dc9fafc0 domain_srv_NET macvlan local
#Networkü varolan bir containere bağla:
docker network connect GULER_NET container33
#Networkün containerle bağlantısını kes:
docker network disconnect GULER_NET container33
Default(Bridge) Ağ Oluşturun:
##Default oluşturulan her Container "Bridge" Networke dahil edilir.
docker network create GULER_NET
Spesifik Ağ oluşturun (Driver):
docker network create -d overlay ethernet_24S
docker network create -d bridge ethernet_sv
docker network create -d macvlan ens33
"domain_srv_NET" adında bir Macvlan ağı oluşturun:
docker network create -d macvlan --subnet 10.5.10.0/24 --gateway 10.5.10.1 -o parent=ens33 domain_srv_NET
"ip_NET" adında bir IPvlan ağı oluşturun:
docker network create -d ipvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o ipvlan_mode=l3 -o parent=ens44 ip_NET
#Ağlarla İlgili Ayrıntılı Bilgiyi Görüntüleyin:
docker network inspect GULER-NET
#Ağları Silme:
docker network rm GULER-NET
#Kullanılmayan Tüm Ağları Silme:
docker network prune
#### Volume ####
##Default Directory: /var/lib/docker/volumes/
#Volume Oluştur:
docker volume create Hold
#Volumleri istele:
docker volume ls
#Docker biriminin (Volume) ayrıntılarını görüntüle:
docker volume inspect Hold
#Docker Alpine Linux konteyneri oluştur ve Hold volume bağla:
docker run -it -v hold:/alanim -d --name alpine_lnx -d alpine
#Oluşturulan alpine linuxa bağlan:
docker exec -it alpine_lnx sh
#Docker File'den yeni bir imaj oluşturmak için:
docker image build -t neonlamba -f Dockerfile .
#Mevcut Containerden(web-server) "Web" adında yeni bir imaj oluşturmak için:
docker commit web-server vulnscanner
#Varolan bir imajı local kaydetmek için
docker save -o sony.tar
#Varolan bir imajı olarak localden yüklemek için
docker load -i sony.tar
#Durdurulan containeri etkileşimli olarak çalıştırmak için (ai):
docker start -ai "container-id"
#Container hakkında bilgi almak için (inspect):
docker inspect "container-id"
#Konteynerdeki değişimlerin takibi:
docker diff "container-id"
#Çalışan containera ait kaynak kullanımı bilgisi için (stats):
docker stats "container"-id"
#Log-durum bilgisi için:
docker stats "container-id"
docker top "container-id"
docker logs "container-id"
docker logs "container-id" --follow
docker service logs "container-id"
#Docker Ağ Günlüklerini Alın:
journalctl -u docker.service
#### Docker Secret ####
Docker secret oluştur:
echo "admin44" | docker secret create username -
echo "12pass!" | docker secret create dbparola -
docker secret ls
### Docker Stacks ### (on Swarm)
#Stack'i Compose dosyalarından dağıtmak için:
docker stack deploy -c stxconf.yml wp_stack
#Belirli bir stack'i kaldırmak için:
docker stack rm "stack-name"
#Stack'lerin listesini görmek için:
docker stack ls
Faydalı olması dileğiyle - Hope it's useful
This post is licensed under CC BY 4.0 by the author.