0% found this document useful (0 votes)
3 views6 pages

Docker Egitim

Uploaded by

lacofi6725
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views6 pages

Docker Egitim

Uploaded by

lacofi6725
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Seviye: Ba■lang■ç

Buras■ Container yap■lar■n■ ke■fetmeniz ve Docker' ■ ö■renmeniz için olu■turulmu■


playground ortam■d■r.

Docker Nedir?

Docker, aç■k kaynak bir Container motorudur. Daha iyi anlamak için mimarisini ve bile■enlerini
inceleyelim:

How does Docker work

Docker Client, docker komutlar■n■ çal■■t■rd■■■n■z komut sat■r■ arayüzü arac■d■r. Gelen
talepleri Docker API üzerinden Docker Daemon' a iletir.

Docker Host üzerinde Docker Daemon çal■■maktad■r.

Docker Daemon, API üzerinden gelen istekleri dinlemekte ve gerçekle■tirmektedir. Tüm container
süreçleri burada yönetilir.

Docker Registry ise aç■k kaynakl■ olarak image' lar■n■z■ yükleyebilece■iniz ve DockerHub' da
payla■abilece■iniz bir kay■t defteri arac■d■r. Docker içerisinde çal■■t■rabilece■iniz image' lar
burada saklan■r. DockerHub, docker taraf■ndan hizmet veren herkesin kullan■m■na aç■k public
bir kay■t defteridir.

Docker Image, container olu■tururken kulland■■■m■z template'lerdir. Çal■■acak


uygulaman■z■n ve uygulaman■z■n altyap■s■nda çal■■an gerekli i■letim sistemi
kütüphanelerinin bulundu■u bir yap■d■r. Container' lar■n yeteneklerini ve ihtiaçlar■n■
tan■mlayan metadata verilerini de saklamaktad■r.

Docker Container, docker image' lardan olu■turulan uygulamalard■r. Docker Image'■n çal■■an
bir örne■idir. Uygulamay■ çal■■t■rmak için gereken tüm paketleri containerlar bünyesinde
tutmaktad■r. Image bir ■ablondur ve containerlar da bu ■ablonun çal■■an bir kopyas■d■r.

Container nedir?

Container'lar içlerinde uygulamay■, uygulaman■n çal■■mas■n■ sa■layan sistem araçlar■n■


(dependencies) ve sistem kütüphanelerini (libraries) bar■nd■r■r. Bir "Container Engine" olan
Docker ise sanal makine görevi gören ama sanal makine olmayan bu container'lar■ yaratmay■
sa■lar. Container'lar sanal makinelere benzetilebilir fakat bilinmelidir ki Container'lar sanal
makineler kadar kaynak tüketmezler. Çünkü tüm i■letim sistemi gereksinimlerini, üzerinde kurulu
olduklar■ i■letim sistemi ile ortak kullan■[Link] çal■■t■klar■ sunucunun veya host'un çekirdek
seviyesinde ayn■ i■letim sistemini payla■■[Link] makine ise kendi i■letim sistemini ve tüm
bile■enlerini çal■■t■r■r. Container'lar■n boyutlar■ da bu yüzden çok küçüktür (ortalama 100MB).
Sistem yönetimini oldukça kolay bir hale getirirken, kaynak israf■n■ da dramatik bir ■ekilde
azaltan Container teknolojisi, sektörde oldukça önemli bir yer edinmi■tir.

Ö■renme Hedefleri

Docker Playground ortam■n■ tamamlad■ktan sonra;

Container olu■turma, çal■■t■rma, silme, listeleme gibi i■lemleri yapabileceksiniz.

Docker Image yap■s■na ve komutlar■na hakim olacaks■n■z.


Dockerfile komutlar■na hakim olacak ve katmanl■ dockerfile dosyalar■yla çal■■abileceksiniz.

Docker üzerinde Data Volume ve Bind Volume tan■mlamas■ yapabilecek, bunlar■ container
içerisine ba■layabileceksiniz.

Docker Network objeleri üzerinde i■lemler yapabileceksiniz.

Temel Komutlar

Bu bölümde temel Docker komutlar■ üzerinde duraca■■z.

docker komutunu kullanarak docker komutlar■na dair seçenekleri, yönetim komutlar■n■ ve di■er
tüm komutlar■ aç■klamalar■yla birlikte görüntüleyebilirsiniz:

■lk Komut: docker

>> Usage: docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:

--config string Location of client config files (default

"/root/.docker")

-c, --context string Name of the context to use to connect to the

daemon (overrides DOCKER_HOST env var and

default context set with "docker context use")

-D, --debug Enable debug mode

■kinci Komut: docker images --help

root@bulutbilisimciler:~#

>> Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:

-a, --all Show all images (default hides intermediate images)

--digests Show digests

-f, --filter filter Filter output based on conditions provided

--format string Pretty-print images using a Go template

--no-trunc Don't truncate output

-q, --quiet Only show image IDs


Üçüncü Komut: docker version

docker client ve docker engine hakk■nda detayl■ bilgileri ö■renebilirsiniz. Ayn■ zamanda docker
client'■n docker daemon ile sorunsuz bir ■ekilde ileti■ime geçti■ini test etmi■ olacaks■n■z:

# docker version

>> Client:

Cloud integration: v1.0.22

Version: 20.10.12

API version: 1.41

Go version: go1.16.12

Git commit: e91ed57

Dördüncü Komut: docker info

komutu ile docker yap■n■z hakk■nda detayl■ bilgilere sahip olabilirsiniz. Docker üzerinde
olu■turdu■unuz container bilgileri (running, paused, stopped), image bilgileri, storage driver
bilgileri, sistem üzerinde swarm'■ aktif edip etmedi■inize dair bilgiler gibi genel bilgileri elde
edebilirsiniz:

# docker info

>> Client:

Context: default

Debug Mode: false

Plugins:

buildx: Docker Buildx (Docker Inc., v0.7.1)

compose: Docker Compose (Docker Inc., v2.2.3)

scan: Docker Scan (Docker Inc., v0.17.0)

Be■inci Komut: docker -D info

komutu ile docker üzerinde debug modu aktif hale getirebilirsiniz:

# docker -D info

>> Client:

Context: default

Debug Mode: true

Plugins:

buildx: Docker Buildx (Docker Inc., v0.7.1)

compose: Docker Compose (Docker Inc., v2.2.3)

scan: Docker Scan (Docker Inc., v0.17.0)


Alt■nc■ Komut: docker container run hello-world

komutu hello-world isimli image ile yeni container olu■turur ve ba■lat■r. Docker Daemon, Image'
■n localde olup olmad■■■n■ kontrol eder. Image localde yer al■yorsa bu image'■ kullanarak yeni
bir container olu■turur. E■er image lokalde yoksa varsay■lan kay■t defteri olan [Link]
adresinde hello-world isimli image'■ sorgular. Burada image yer al■yorsa image'■ locale indirir ve
bu image'■ baz alarak yeni bir container olu■turur ve çal■■t■r■r. Böylece servis aya■a kalkm■■
olur:

# docker container run hello-world

>> Hello from Docker!

This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

1. The Docker client contacted the Docker daemon.

2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

(amd64)

3. The Docker daemon created a new container from that image which runs the

executable that produces the output you are currently reading.

4. The Docker daemon streamed that output to the Docker client, which sent it

to your terminal.

Yedinci Komut: docker search

komutu ile istedi■iniz image'■ [Link] adresinde arayabilir ve detayl■ bir liste elde
edebilirsiniz:

# docker search centos

>> NAME DESCRIPTION STARS OFFICIAL AUTOMATED

centos The official build of CentOS. 7190 [OK]

Sekizinci Komut: docker pull komutu ile belirtilen image'■, [Link] adresinden sisteminize
çekebilirsiniz: Örne■in httpd image'■ için:

# docker pull httpd

>>Using default tag: latest

latest: Pulling from library/httpd

42c077c10790: Pull complete

77a357ba66a8: Pull complete

e9e2f87fc2ce: Pull complete

0b3c9bceb738: Pull complete


de91965861a5: Pull complete

Digest: sha256:f899e432292e4ee92772d35e43b2e3dcf30042b1c6385d33f00a9300c69ee729

Status: Downloaded newer image for httpd:latest

[Link]/library/httpd:latest

Dokuzuncu komut: docker images

komutuyla sistemdeki image'lar■ listeleyebilirsiniz:

# docker images

>>REPOSITORY TAG IMAGE ID CREATED SIZE

httpd latest b260a49eebf9 a seconds ago 145MB

Not=> Docker'da baz■ komutlar, daha uzun tam komutlar■n k■saltmalar■ olarak sunulmu■[Link]
aslunda docker image ls komutunun k■saltmas■d■r

Onuncu komut: docker container run --help

komutu ile container olu■tururken kullanabilece■iniz parametrelere dair bilgi edinebilirsiniz:

# docker container run --help

>> Usage: docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

Options:

--add-host list Add a custom host-to-IP mapping

(host:ip)

-a, --attach list Attach to STDIN, STDOUT or STDERR

--blkio-weight uint16 Block IO (relative weight),

between 10 and 1000, or 0 to

disable (default 0)

--blkio-weight-device list Block IO weight (relative device

weight) (default [])

Not => Bu komut da asl■nda docker run diyerek k■saca da kullan■r■z.Çünkü container d■s■nda
■mage veya volume do■rudan çal■■t■r■labilir varl■klar de■ildir.

Docker'da container üzerinde yapaca■■m■z i■lemlere geçmeden önce, önemli bir kaç komuta
bakal■m. Öncelikle docker container run komutu, docker container create ve docker container start
komutunun birle■imidir.
Her image'da, o image'dan bir container create etti■imiz zaman default çal■■mas■ için
ayarlanm■■ bir uygulama vard■r. Container, bu uygulama çal■■t■■■ sürece ayakta kal■r.
Uygulama çal■■may■ b■rakt■■■nda container da kapat■l■r.

Peki image'■n içinde sadece tek bir uygulama m■ var? Hay■r bir Docker image'■n■n içinde
birden fazla uygulama olabilir. Sadece tek bir uygulama içermelidir gibi bir kural yok. Fakat Docker,
container start edildi■inde default çal■■mas■ için yaln■z tek bir uygulaman■n ayarlanmas■na
izin verir. Bunun hangi uygulama olaca■■n■ container yarat■l■rken belirtebiliriz.

docker container run -d -p 80:80 httpd komutunu çal■■t■r■rsak, httpd registry'sindeki default
uygulamay■ "80:80" portundan ça■■r■r■z. "-d" komutu sayesinde container'■ detach ederiz yani
arkaplanda çal■■t■r■r■z. Yani loglar■n■/ç■kt■lar■n■ kendi shell'imizde görmeyiz ama
container arkada çal■■maya devam eder:

root@/root/workspace:~# docker container run -d -p 80:80 httpd

Gördü■ünüz gibi herhangi bir ç■kt■ al■nmad■ fakat container'■n arkaplanda çal■■t■■■n■
biliyoruz. O halde çal■■an/çal■■mayan tüm container'lar■m■z■ görmek için docker container ls
-a veya docker ps -a komutunu çal■■t■ral■m. Bu iki komut da ayn■ görevi görür:

# docker container ls -a

>> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

940d1da952e5 httpd "httpd-foreground" 5 seconds ago Up 4 seconds [Link]:80->80/tcp


musing_ardinghelli

# docker ps -a

>> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

940d1da952e5 httpd "httpd-foreground" About a minute ago Up About a minute [Link]:80->80/tcp


musing_ardinghelli

Container'lar■ silmek için ise docker container rm diyip container'lar■n ID'lerinin ilk 3-digit'ini
girebiliriz. Bu komut çal■■an container'lar■ silemez. Çal■■an bir container'■ silmek için docker
container rm -f ilk3Digit komutunu kullanabiliriz.

# docker container rm 940

>> Error response from daemon: You cannot remove a running container
940d1da952e5d3ae548786286f3aa4f0cc38df67db867194b1fd1be1b3b882d3. Stop the container
before attempting removal or force remove

# docker container rm -f 940

>> 940

Bu komutlar■n ard■ndan container listeleme yani docker container ls -a komutunu çal■■t■ral■m


ve ayakta container olmad■■■n■ görelim:

root@bulutbilisimciler:~# docker container ls -a

>> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

You might also like