Docker Sık Kullanılan Komutlar-1

Merhaba bu yazımda sık sık kullandığım docker komutlarını derleyeceğim.

  1. NGINX Örneği ile Docker Container Yaratma ve Çalıştırma
  2. Docker Container Listelemek
  3. Çalışan Docker Container Özelliklerini Yazdırmak
  4. Docker Container Durdurmak
  5. Docker Container Kaldırmak (rm)
  6. Docker Images Listeleme
  7. Ana Makineden Docker Container’a Dosya Kopyalamak
  8. Docker Container’dan Ana Makineye Dosya Kopyalamak
  9. Çalışmayanlar dahil Docker Container’ları Listelemek
  10. Docker Container Komut Satırına Erişmek, Bağlanmak
  11. Docker Container Loglarını Temizlemek
  12. Docker Container root Kullanıcı ile Bağlanmak

1. NGINX Örneği ile Docker Container Yaratma ve Çalıştırma

sudo docker container run --publish 80:80 --detach --name webhost nginx

Örnek çıktı uzun bir container id numarası olacaktır.

f1ae36d58a81efe40afcda069f26b4bd27824442fa33f0a079bd516df4e85b37

–detach parametresi konteynırın arka planda çalışmasını sağlar, komut satırını meşgul etmez. Konteynırı her çalıştırdığımızda yeni benzersiz bir id alır. –name konteynıra bizim belirlediğimiz bir isimdir. Internet tarayıcınıza (Örn Chrome) gidip localhost yazdığınızda Welcome to nginx! sayfasını görmeniz konteynırın başarıyla oluştuğu ve sağlıklı çalıştığı anlamına gelir.

2. Docker Container Listelemek

sudo docker container ls
veya
sudo docker ps

Beklenen çıktı:

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                NAMES
f1ae36d58a81        nginx               "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp   webhost

3. Çalışan Docker Container Özelliklerini Yazdırmak

sudo docker container inspect mysql_server

4. Docker Container Durdurmak

docker container stop container_id
veya
docker container stop container_name

5. Docker Container Kaldırmak (rm)

sudo docker container rm 358 77b 887 ed5 cb0 eb3 d7e

docker container kaldırmadan önce durdurmalıyız. rm karşısındakiler container id numaraları. Aynı şekilde isim de olabilir.

6. Docker Images Listeleme

sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
nginx                latest              27a188018e18        2 weeks ago         109MB
zookeeper            3.4.14              2a7f6fc5c8a1        3 weeks ago         150MB
alpine               latest              cdf98d1859c1        3 weeks ago         5.53MB

7. Ana Makineden Docker Container’a Dosya Kopyalamak

Format şöyle:

docker cp /ana/makine/dosya/adresi/dosya.uzanti <container-id>:/container/dizin/adresi

Örnek (Ubuntu üzerinde):

docker cp /home/erkan/flink-ogrenme/scala-wordcount/target/flink-scala-wordcount-1.0-SNAPSHOT.jar b7d00b868791:/opt/flink

Bulunduğum dizindeki tüm dosyaları konteyner içinde bir dizine kopyalamak

docker cp . d8f:/tutorial

8. Docker Container’dan Ana Makineye Dosya Kopyalamak

Bu komutu container dışında ana makine komut satırından vereceğimizi unutmayalım. Format:

docker cp <container-id>:/konteynır/dosya/adresi/dosya.uzanti /ana/makine/hedef/dizin/adresi

Örnek:

docker cp cas1:/opt/cassandra/conf/cassandra.yaml /home/erkan/cassandra_docker_cluster

9. Çalışmayanlar dahil Docker Container’ları Listelemek

sudo docker ps -a

10. Docker Container Komut Satırına Erişmek, Bağlanmak

Docker konteynır’a sanki bir sanal makinenin komut satırına bağlanır gibi erişebiliriz.

Format:

sudo docker exec -it <containerid> bash

Örnek (Ubuntu):

sudo docker exec -it b7d bash

Örnek (Windows-Docker-Toolbox):

winpty docker.exe exec -it b7d bash

Beklenen örnek sonuç:

root@jobmanager:/opt/flink#

Aslında burada kullanılan bash bir çok olasılıktan sadece birisi. Örneğin container bir mongodb container olsaydı bash yerine mongo yazdığımızda mongo shell’e doğrudan bağlanıp mongo komutları yazıyor olacaktık.

11. Docker Container Loglarını Temizlemek (Log Truncate)

Bazen tail ettiğinizde eski loglar can sıkabilir. O yüzden özellikle geliştirme çalışmalarında container loglarını silmeye ihtiyaç duyabilirsiniz.

[train@localhost logstash]$ echo $(docker inspect --format='{{.LogPath}}' logstash)
/var/lib/docker/containers/4d5350e445150c3caaf6ceaa8670d1cee22d0e08896ff38ff70e1650ce9c61ad/4d5350e445150c3caaf6ceaa8670d1cee22d0e08896ff38ff70e1650ce9c61ad-json.log

[train@localhost logstash]$ sudo bash -c '> /var/lib/docker/containers/4d5350e445150c3caaf6ceaa8670d1cee22d0e08896ff38ff70e1650ce9c61ad/4d5350e445150c3caaf6ceaa8670d1cee22d0e08896ff38ff70e1650ce9c61ad-json.log'
[sudo] password for train: 

12. Docker Container root Kullanıcı ile Bağlanmak

docker exec -it -u root logstash bash
[root@4d5350e44515 logstash]#

 

Yazar Hakkında
Toplam 175 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara