Skip to content

Docker Command Cheat Sheet

Το Docker είναι μια μηχανή container εφαρμογών ανοιχτού κώδικα που επιτρέπει στους προγραμματιστές να πακετάρουν τις εφαρμογές τους και τις εξαρτήσεις τους σε ένα φορητό image, το οποίο μπορεί στη συνέχεια να δημοσιευτεί σε οποιοδήποτε δημοφιλές μηχάνημα Linux ή Windows, επιτυγχάνοντας εικονικοποίηση. Τα containers χρησιμοποιούν έναν μηχανισμό sandbox και είναι πλήρως απομονωμένα μεταξύ τους.

Γενική Χρήση

Εκκίνηση ενός container στο παρασκήνιο

docker run -d jenkins

Εκκίνηση ενός διαδραστικού container

docker run -it ubuntu bash

Εκκίνηση ενός container που διαγράφεται αυτόματα όταν σταματά

docker run --rm ubuntu bash 

Εκκίνηση ενός container με αντιστοίχιση θυρών

docker run -p 80:80 -d nginx 

Εκκίνηση ενός container με όνομα

docker run --name mydb redis 

Εκκίνηση ενός σταματημένου container

docker start mydb 

Διακοπή ενός container

docker stop mydb

Εκκίνηση ενός container και προσθήκη μεταδεδομένων

docker run -d \ label=traefik.backend=jenkins jenkins

Κατασκευή Images

Κατασκευή ενός image από το Dockerfile στον τρέχοντα κατάλογο

docker build --tag myimage . 

Αναγκαστική ανακατασκευή ενός image

docker build --no-cache . 

Μετατροπή ενός container σε image

docker commit c7337 myimage 

Διαγραφή όλων των αχρησιμοποίητων images

docker rmi $(docker images -q -f "dangling=true")

Εντοπισμός Σφαλμάτων

Σύνδεση σε ένα container που εκτελείται

docker exec -it c7337 docker

Εμφάνιση αρχείων καταγραφής δραστηριότητας ενός container που εκτελείται ως δαίμονας

docker logs -f c7337

Εμφάνιση των εκτεθειμένων θυρών του container

docker port c7337

Volumes & Δικτύωση

Δημιουργία τοπικού volume

docker volume create --name myvol 

Προσάρτηση ενός volume κατά την εκκίνηση του container

docker run -v myvol:/data redis

Καταστροφή ενός volume

docker volume rm myvol 

Λίστα όλων των volumes

docker volume ls

Δημιουργία τοπικού δικτύου

docker network create mynet 

Σύνδεση container στο δίκτυο κατά την εκκίνηση

docker run -d --net mynet redis

Σύνδεση container σε συγκεκριμένο δίκτυο

docker network connect mynet c7337 

Αποσύνδεση container από το δίκτυο

docker network disconnect mynet c7337

Διαχείριση Container

Λίστα εκτελούμενων containers

docker ps

Λίστα όλων των containers (συμπεριλαμβανομένων αυτών που εκτελούνται και αυτών που έχουν σταματήσει)

docker ps -a

Επιθεώρηση μεταδεδομένων container

docker inspect c7337

Λίστα όλων των διαθέσιμων τοπικών images

docker images

Διαγραφή όλων των σταματημένων containers

docker rm $(docker ps --filter status=exited -q) 

Λίστα όλων των containers με συγκεκριμένη ετικέτα

docker ps --filter label=traefik.backend

Ερώτημα για τη διεύθυνση IP ενός εκτελούμενου container

docker inspect -f '{{ .NetworkSettings.IPAddress }}' c7337

Περιγραφή

Όνομα Image

redis, jenkins, nginx

Όνομα Container ή ID Commit

mydb  # Όνομα Container 
c7337 # ID Commit