Posts

Showing posts with the label docker

Removing unused docker images and untaged docker image layers

docker system prune --all -f docker image prune -f --all --filter "until=1h"  

ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

  sudo chmod 666 /var/run/docker.sock Ref

Check logs in docker container

watch -n 0 "docker logs mycontainer"

Creat ssh server within container docker

 https://dev.to/s1ntaxe770r/how-to-setup-ssh-within-a-docker-container-i5i

Docker and Docker-compose

 Docker compose: Hiểu nôm na nó là một bản soạn thảo Nó soạn thảo cái gì? -> Nó soạn thảo một danh mục các Docker image cần khởi tạo thành container Ví dụ bình thường bạn có 1 restful service, service dùng redis để cache và dùng mysql để lưu dữ liệu, và dùng kafka hoặc rabbitMQ để dùng Message Như vậy bạn hoàn toàn có thể tạo docker file cho service rồi build thành image và chạy manual thành container Bạn cũng có thể kéo Redis image về và chạy thành docker container Tương tự Mysql, hoặc Kafka hoặc rabbitMQ --> Việc cài đặt bằng tay thủ công cho các thành phần trên là khá ok, nhưng đó k phải là 1 cách hoàn hảo để deploy trên docker --> dẫn đến khái niệm docker-compose  Nó là 1 file định nghĩa các image cùng nhau được khởi tạo thành các docker trong một mạng network riêng --> với cách này bạn chỉ cần soạn thảo file docker-compose  cho các docker đó rôì dùng lệnh docker-compose up -d để build và run containers  Với cách này chỉ cần cài đặt docker trên môi t...

Issues trong khi build docker image

failed to export image: failed to set parent sha256:1524fb5245903585bbe27769969c45f569583cc0f9b37c3e7d1c26f058bc0b02: unknown parent image ID sha256:1524fb5245903585bbe27769969c45f569583cc0f9b37c3e7d1c26f058bc0b02 rất có thể là do bạn đã xóa mất một layer image nào đó rồi

Dockerfile tutorial

FROM golang:latest Lệnh này là khai báo base image được dùng để tạo new image. golang: tên base image latest: version của base image, bạn cũng có thể dùng sha256 để xác định rõ một version golang@sha256 RUN mkdir /app câu lệnh này dùng để thực thi một câu lệnh cmd trên new image, tương tư như câu lệnh trên terminal thông thường Tạo một layer trong new image Câu lệnh này đượng thực thi trong vòng đời "build time" nghĩa là build new image ADD      .       /app/ Lệnh này dùng để copy thư mục hiện tại (.)  vào thư mục app trên new image WORKDIR /app câu lệnh này tương tự như câu lệnh cd trong terminal, ý là chỉ con trỏ tới thư mục working /app RUN go build -o main .  Lệnh này tương tự như bạn chạy câu lệnh trong terminal là "go build -o main" CMD ["/app/main"] lệnh này tương tự như lệnh RUN là chạy một câu lệnh nhưng nó cho phép bạn truyền thêm tham số Lệnh này là lệnh running time trong vòng đời. Nó chỉ thực thi khi ảnh đã...

Docker tutorial

https://jobs.hybrid-technologies.vn/blog/huong-dan-su-dung-docker-co-ban/ Doker tutorial --------------------- docker info chỉ ra docker đang có bao nhiêu ảnh, bao nhiêu containner đang chạy hay dừng -------------------- dùng lệnh  docker images : để xem danh sách các ảnh đã tải về ------ Làm thế nào để có ảnh docker pull  : dùng để donwload image từ dockerhub docker pull <image_name:tag> -------sau khi có ảnh rồi thì cài đặt như nào 1. docker run {image_name or id_image} 2. docker run {image_name}:{tag_name} trường hợp bạn có nhiều version ảnh của một phần mềm (ví dụ redis:1.1, redis latest, redis :1.2) 3. docker run -d --name  container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name 4. ex: sudo docker run -d -p 6379:6379 --name redis1 redis --detach , -d       Run container in background and print container ID --name             ...