Docker Machine (Bài trước)
(Bài tiếp) Swarm Docker
chay

Tạo Registry riêng

Nếu muốn tạo một kho chứa các Image riêng, bạn có thể cập nhật, lấy về các Image từ đó thì có thể sử dụng image registry:2.

Các thông tin chính của registry:

  • Cổng dịch vụ 5000
  • Phiên bản có thể dùng: registry:2.7
  • Dữ liệu lưu tại /var/lib/registry (biết để muốn ánh xạ đĩa)

Giả sử máy host đang có địa chỉ IP là 127.0.0.1, cài đặt để Docker truy cập được đến kho ở địa chỉ 127.0.0.1:5000, có thiết lập để lưu dữ liệu cố định ở máy host /home/registry/ (nếu chưa có bạn tạo thư mục này trước).

docker run -p 5000:5000 -v /home/registry:/var/lib/registry registry:2.7

Khi container này chạy, địa chỉ để Docker truy cập là 127.0.0.1:5000, ở môi trường thực thế Docker cần kết nối an toàn đến kho chứa với giao thức https (ssl), tuy nhiên để thiết lập Docker chấp nhận kết nối kém an toàn đến kho chứa này thiết lập như sau:

Mở phần thiết lập của Docker Destop ra, thiết lập ở mục Daemon > Advanced có dòng:

"insecure-registries" : ["127.0.0.1:5000"]

Sau đó khởi động lại Docker

docker setting

Hoặc trong hệ thông Linux biên tập file /etc/docker/daemon.json có nội dung sau, rồi khởi động lại:

{
    "insecure-registries" : ["127.0.0.1:5000"]
}

Push / Pull từ Registry riêng

Để đẩy một Image đang có ở máy local lên kho riêng có địa chỉ 127.0.0.1:5000 (nếu dùng tên miền thì yourdomain.com:5000) thì cần đặt tên Image phần tên có chứa địa chỉ ở đầu với cấu trúc như sau: addr/nameimage:tag với addr là địa chỉ kho.

Giờ hãy pull một Image từ hub.docker.com về (hoặc nếu thích thì build riêng một image), giả sử pull về busybox:latest

docker pull busybox:latest

Sau khi lấy về nó có ID là af2f74c517aa

Đổi tên image này thành tên 127.0.0.1:5000/mybusybox:v1

docker tag af2f74c517aa 127.0.0.1:5000/mybusybox:v1

Với cách đặt tên như vậy, nếu dùng lệnh docker push nó sẽ đẩy lên kho chứa có địa chỉ 127.0.0.1:5000 là kho chứa của bạn:

docker push 127.0.0.1:5000/mybusybox:v1

Sau lệnh này thì khó chứa đã có image với tên đầy đủ 127.0.0.1:5000/mybusybox:v1, bất kỳ lúc nào có thể tải lại bằng lệnh pull

docker pull 127.0.0.1:5000/mybusybox:v1

Đăng ký nhận bài viết mới
Docker Machine (Bài trước)
(Bài tiếp) Swarm Docker