Docker Cheat Sheet
دانلود و اجرای ایمیج
sudo docker run یا pull نام ایمیج
docker run -d nginxمدیریت ایمیجها و کانتینرها
لیست ایمیجها
sudo docker imagesلیست کانتینرهای در حال اجرا
sudo docker psلیست تمام کانتینرها (حتی استاپ شده)
sudo docker ps -aپاک کردن کانتینرها
sudo docker rm id
docker rm $(docker ps -a -q)ایستاپ و استارت کردن کانتینرها
docker stop id
docker start idمشاهده لاگهای کانتینر
sudo docker logs -f id_containerاتصال به یک کانتینر در حال اجرا
sudo docker attach idپاکسازی و مدیریت حافظه
حذف ایمیجهای دنگلینگ
docker image pruneحذف کانتینرهای اگزیت شده
docker container pruneحذف والیومهای بدون استفاده
sudo docker volume pruneمشاهده وضعیت دیسک
sudo docker system dfمدیریت والیومها
تعریف والیوم در docker-compose.yml
volumes:
- postgres-db-airflow:/var/lib/postgresql/data
- ./init-database.sh:/docker-entrypoint-initdb.d/init-database.sh
- ./init-sql.sql:/init-sql.sqlنکته مهم در والیومها
-
در صورتی که داکر بهصورت عادی ران شود، دایرکتوری درون کانتینر پاک شده و دایرکتوری تعریف شده سیستم جای آن را میگیرد.
-
volume mount
یه name میدیم و داکر خودش هندل میکنه
- bind mount
آدرس دستی میدیم
اجرای دستورات درون کانتینر
sudo docker exec -it id bashTroubleshooting
دیباگ کردن کانتینری که اجرا نمیشود
docker run -ti image_id shمشاهده لاگهای یک کانتینر کرششده
sudo docker logs -f id_containerتغییر entrypoint هنگام اجرای کانتینر
docker run -it --entrypoint /bin/sh echo-appورود به داکر هاب
docker login -u username -p passwordبیلد کردن و ذخیره ایمیجها
بیلد کردن ایمیج از Dockerfile
docker build -t name:version directory
docker build -t food:1.0 ~/test/ذخیره و لود کردن ایمیجها
sudo docker save -o ~/ngin nginx:1.0.0
sudo docker load < nginاستفاده از PostgreSQL در داکر
اجرای PostgreSQL
docker run -itd -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=salam -p 5432:5432 -v /data:/var/lib/postgresql/data --name postgresql postgres:15-alpineورود به دیتابیس PostgreSQL
PGPASSWORD=salam psql -U postgresاجرای اسکریپت SQL در دیتابیس
psql -U postgres -d news_fetcher -h localhost -p 5432 -a -f init-sql.sqlDockerfile نمونه
FROM alpine:3.17
WORKDIR /app
COPY . /app
CMD /app/salamمدیریت شبکهها در داکر
ساخت شبکه
sudo docker network create mynetworkمشاهده شبکهها
docker network lsمشاهده اطلاعات شبکه
docker network inspect <network-name>پینگ گرفتن از کانتینرها درون شبکه
nslookup <container-name>
ping <container-name>more