Docker, "konteynerleştirme" olarak da bilinen işletim sistemi seviyesinde sanallaştırma sağlayan bir bilgisayar programıdır. İlk sürümü 2013'te yayınlanmıştır. Docker, "konteyner" adı verilen yazılım paketlerini çalıştırmak için kullanılmaktadır. Konteynerler birbirinden izole edilmiş ve bağımsız halde çalışabilmektedir. Tüm konteynerler tek bir işletim sistemi çekirdeği üzerinde çalışır ve bu sayede sanal makinelerden daha hafiftir. Konteynerler "imaj" (image) adı verilen salt-okunur dosya sistemlerinden oluşturulur. [1]

Basit Docker Komutları

docker run

docker run komutu istenen imaj üzerinde yeni bir container oluşturarak belirtilen komutu çalıştırır.

Kullanımı:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
$ docker run busybox echo hi there!
hi there!

docker run komutu aslında docker create ve docker start komutlarını kapsamaktadır.

docker create komutu ile yeni bir container oluşturulur ve oluşturulan container'ın  id'si döndürülür. Docker start ile başlatılmak istenen container, id'si verilerek istenilen komutla çalıştırılır.

Kullanımı:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
docker start [OPTIONS] CONTAINER [CONTAINER...]
$ docker create busybox echo hello,there!
c7507d23cc6570ac1f25ff0e3a3181d927bac2249e33e5bec236ed41c41d22b2
$ docker start 06a6d2a2d4e307cd813b9caf158db84881872d8c8232891e6ff0ef96a33a03bd
06a6d2a2d4e307cd813b9caf158db84881872d8c8232891e6ff0ef96a33a03bd

docker start komutu, -a parametresi kullanılarak çalıştırılırsa, oluşan çıktı görüntülenir.

$ docker start -a 06a6d2a2d4e307cd813b9caf158db84881872d8c8232891e6ff0ef96a33a03bd
hello,there!

docker ps

docker ps komutu ile çalışmakta olan container'ların listesi görüntülenir. -a(ya da --all) parametresi ile hem çalışan hemde durmuş olan container'ların listesi görüntülenir.

Kullanımı:

docker ps [OPTIONS]
$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS     NAMES
a005c41dbc06   busybox   "ping caglagokgoz.com"   10 seconds ago   Up 9 seconds             naughty_mayer
$ docker ps -a
CONTAINER ID   IMAGE            COMMAND                  CREATED              STATUS                          PORTS     NAMES
a005c41dbc06   busybox          "ping caglagokgoz.com"   About a minute ago   Exited (0) About a minute ago             naughty_mayer
06a6d2a2d4e3   busybox          "echo hello,there!"      About an hour ago    Exited (0) 48 minutes ago                 relaxed_poitras
c7507d23cc65   busybox          "sh"                     About an hour ago    Exited (0) About an hour ago              exciting_mclaren
65604689bbf6   busybox          "echo hi there!"         About an hour ago    Exited (0) About an hour ago              blissful_hoover
bb739c943305   busybox          "ping caglagokgoz.com"   39 hours ago         Exited (137) 39 hours ago                 nice_nobel
a997aef516bf   postgres:10.15   "docker-entrypoint.s…"   11 days ago          Exited (0) 41 hours ago                   postgresql_db_1

docker logs

docker logs komutu ile istenen container'ın(çalışmakta veya durmuş) log bilgileri görüntülenir.

Kullanımı:

docker logs [OPTIONS] CONTAINER
$ docker logs a005c41dbc06
PING caglagokgoz.com (34.89.36.67): 56 data bytes
64 bytes from 34.89.36.67: seq=0 ttl=54 time=81.244 ms
64 bytes from 34.89.36.67: seq=1 ttl=54 time=82.708 ms
64 bytes from 34.89.36.67: seq=2 ttl=54 time=82.021 ms
64 bytes from 34.89.36.67: seq=3 ttl=54 time=124.538 ms
64 bytes from 34.89.36.67: seq=4 ttl=54 time=84.066 ms
64 bytes from 34.89.36.67: seq=5 ttl=54 time=85.666 ms
64 bytes from 34.89.36.67: seq=6 ttl=54 time=97.808 ms
64 bytes from 34.89.36.67: seq=7 ttl=54 time=215.334 ms
64 bytes from 34.89.36.67: seq=8 ttl=54 time=87.353 ms
64 bytes from 34.89.36.67: seq=9 ttl=54 time=80.855 ms
64 bytes from 34.89.36.67: seq=10 ttl=54 time=80.792 ms
64 bytes from 34.89.36.67: seq=11 ttl=54 time=80.422 ms
64 bytes from 34.89.36.67: seq=12 ttl=54 time=79.394 ms
64 bytes from 34.89.36.67: seq=13 ttl=54 time=154.355 ms
64 bytes from 34.89.36.67: seq=14 ttl=54 time=179.054 ms
64 bytes from 34.89.36.67: seq=15 ttl=54 time=308.482 ms
64 bytes from 34.89.36.67: seq=16 ttl=54 time=232.327 ms
64 bytes from 34.89.36.67: seq=17 ttl=54 time=294.825 ms
64 bytes from 34.89.36.67: seq=18 ttl=54 time=131.459 ms
64 bytes from 34.89.36.67: seq=19 ttl=54 time=80.004 ms
64 bytes from 34.89.36.67: seq=20 ttl=54 time=78.710 ms
64 bytes from 34.89.36.67: seq=21 ttl=54 time=79.480 ms
64 bytes from 34.89.36.67: seq=22 ttl=54 time=79.089 ms
64 bytes from 34.89.36.67: seq=23 ttl=54 time=83.766 ms
64 bytes from 34.89.36.67: seq=24 ttl=54 time=79.464 ms
64 bytes from 34.89.36.67: seq=25 ttl=54 time=80.308 ms
64 bytes from 34.89.36.67: seq=26 ttl=54 time=81.389 ms
64 bytes from 34.89.36.67: seq=27 ttl=54 time=85.925 ms
64 bytes from 34.89.36.67: seq=28 ttl=54 time=81.428 ms
64 bytes from 34.89.36.67: seq=29 ttl=54 time=119.399 ms
64 bytes from 34.89.36.67: seq=30 ttl=54 time=87.533 ms
64 bytes from 34.89.36.67: seq=31 ttl=54 time=86.701 ms
64 bytes from 34.89.36.67: seq=32 ttl=54 time=108.542 ms
64 bytes from 34.89.36.67: seq=33 ttl=54 time=81.498 ms
64 bytes from 34.89.36.67: seq=34 ttl=54 time=87.517 ms
64 bytes from 34.89.36.67: seq=35 ttl=54 time=99.615 ms

--- caglagokgoz.com ping statistics ---
36 packets transmitted, 36 packets received, 0% packet loss
round-trip min/avg/max = 78.710/112.307/308.482 ms