Docker Cheatsheet
Sık Kullanılan Docker Komutları#
- Var olan docker image lar ;
docker images
- Çalışan docker containerlar ;
docker ps
- Şuanda çalıştırılmayan / durdurulmuş olan containerlar ;
docker ps -a
docker ps --all
- komutlarıyla görebilirsiniz. Exited olmuş containerları tekrar ayağa kaldırmak için
docker start -a <container_id>
- Docker container ını durdurmak için ;
docker stop <container_id>
- Docker container durmuyorsa
docker kill <container_id>
- Docker image silmek için ;
docker image remove <imageID>
- Eğer başka container ve ya başka registry tarafından kullanılıyorsa silnemeyebilir. Bu yüzden
force
ile silmeyi denemek gerekebilir.
docker rmi -f <imageID>
- Docker daemon u durdur
sudo systemctl stop docker
- Restart docker
sudo systemctl restart docker
Docker run işlemi aslında içerisinde iki tane instruction içerir.
docker run = docker create + docker start
docker create hello-world
- İşletildiğinde docker bize container id sini gönderiyor. Ardından
docker start -a <container_id>
-a attach anlamında kullanılıyor ve container outputunu izlememize yardımcı oluyor.
- Container loglarına bakmak için ;
docker logs <container_id>
Docker Container, Image ları temizleme#
- Docker daemon tarafında zamanında kullanılan ama artık ihtiyaç duyulmayan containerları imageları ve cache leri temizlemek için
docker system prune
Docker Container içinde instruction çalıştırmak#
- Örnek olarak docker hub dan redis image ını çekelim ve containerı başlatalım
docker run redis
1:C 25 Feb 2020 21:54:15.484 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 25 Feb 2020 21:54:15.488 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 25 Feb 2020 21:54:15.488 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 25 Feb 2020 21:54:15.496 * Running mode=standalone, port=6379.
1:M 25 Feb 2020 21:54:15.496 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 25 Feb 2020 21:54:15.496 # Server initialized
1:M 25 Feb 2020 21:54:15.497 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
1:M 25 Feb 2020 21:54:15.499 * `Ready to accept connections`
-
Sonda gördüğünüz gibi
Ready to accept connections
ibaresi görünüyor. Yani redis-server şu an docker üzerinde koşuyor. Ancak bizim bu redis serverına ulaşmamız gerek. -
Kendi local bilgisayarımızda bu işlemi diğer terminal sayfasını açıp
redis-cli
yazıp yapablirdik. Ancak bu işlemi docker containerının içinde yapmamız lazım.
docker exec -it <container_id> <işletilecek intruction>
- Bizim durumumuzda instruction redis-cli olacak.
Offline Image Taşıma#
sudo docker save -o <name_the_image>.docker <image_name or image_id>
- Docker Daemon içinde bulunulan dir’e docker image ini çıkarttı. Başka ortama Deploy etmek için;
sudo docker load -i <name_of_the_image>.docker