Trên CoreOS, hướng dẫn thiết lập đăng ký Docker của riêng bạn

Trên CoreOS, hướng dẫn thiết lập đăng ký Docker của riêng bạn

Chúng ta đều biết và yêu thích Docker, một nền tảng để tạo, quản lý và phân phối các thùng chứa ứng dụng trên nhiều máy. Docker Inc. cung cấp dịch vụ lưu trữ các thùng chứa nguồn mở sẽ được tải xuống (hoặc kéo) như kho lưu trữ git được gọi là "Docker Registry". Hãy nghĩ về nó giống như một GitHub cho các container Docker.

Nhưng nếu bạn muốn lưu trữ sổ đăng ký của riêng bạn tách biệt với sổ đăng ký công khai thì sao? Chà, Docker Inc. đã mở ứng dụng Registry của họ trên GitHub.

Hướng dẫn này sẽ đưa bạn qua quá trình thiết lập sổ đăng ký Docker riêng bằng CoreOS trên VPS mới.

DockOS + Docker

Chúng tôi sẽ không dành nhiều thời gian để xem chính xác những gì Docker và CoreOS có thể làm, vì nó nằm ngoài phạm vi của hướng dẫn này. Về bản chất, CoreOS được thiết kế cho các cụm máy chủ lớn, nó nhỏ, nhanh và được cập nhật bảo mật thường xuyên. Hệ thống tệp gốc của nó cũng chỉ đọc, nghĩa là bạn phải sử dụng Docker để chạy bất kỳ loại phần mềm nào không có trong bản cài đặt cơ sở.

Điều này làm cho Core OS trở thành một hệ thống máy chủ hoàn hảo cho Docker!

Kéo và chạy registry mới nhất

Docker Inc. đã cung cấp Registry như một hình ảnh cấp cao nhất, điều này có nghĩa là chúng ta có thể kéo nó xuống một cách đơn giản:

docker pull registry

Điều này có thể mất một vài phút tùy thuộc vào tốc độ kết nối.

Điểm cộng của việc là một hình ảnh cấp cao nhất cũng có nghĩa là nó được hỗ trợ và cập nhật thường xuyên.

Bây giờ hãy kiểm tra sổ đăng ký. Chúng tôi có thể tạo một container mới bằng cách sử dụng hình ảnh đăng ký:

docker run -p 5000:5000 -d --name=basic_registry registry

Đối với những người chưa sử dụng Docker quá nhiều, -pcờ là viết tắt PORT, có nghĩa là chúng tôi đang hiển thị cổng 5000 trên từ container lên cổng máy chủ 5000.

Các -dlá cờ tượng trưng cho daemon, điều này sẽ gây ra các container để chạy ở chế độ nền và không in ra với phiên SSH hiện tại, chúng tôi cũng muốn đặt tên chứa này thử nghiệm cơ bản bằng cách sử dụng --nametùy chọn để chúng tôi có thể dễ dàng quản lý nó sau này.

Hãy chắc chắn rằng thùng chứa registry cơ bản của bạn đang chạy bằng cách sử dụng docker ps. Đầu ra sẽ trông tương tự như:

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
edfb54e4a8c4        registry:0.8.1      "/bin/sh -c 'exec do   7 seconds ago       Up 6 seconds        0.0.0.0:5000->5000/tcp   basic_registry

Ngoài ra, hãy truy cập http://YOUR_IP:5000trong trình duyệt web của bạn và bạn sẽ nhận được một thông báo như sau:

"docker-registry server (dev) (v0.8.1)"

Chú ý từ devtrong ngoặc đơn. Điều này có nghĩa là máy chủ hiện đang chạy cấu hình dev. Chúng tôi sẽ xem xét thêm cấu hình sớm.

Bây giờ bạn có đăng ký container (rất cơ bản) của riêng bạn đang chạy! Nhưng chúng tôi chưa hoàn thành.

Có thể bạn muốn giữ riêng tư này khỏi con mắt tò mò hoặc có thể lưu trữ hình ảnh của bạn trên Amazon S3 thay vì lưu trữ cục bộ. Chúng ta hãy xem qua các tùy chọn cấu hình khác nhau trong phần tiếp theo.

Trước khi chúng ta tiếp tục, hãy tiêu diệt thùng chứa thử nghiệm để chúng ta không chạy vào các cổng xung đột.

docker kill basic_registry

Cấu hình đăng ký

Có hai cách chúng ta có thể chuyển cấu hình cho Docker Registry. Một cách là bằng cách chuyển các biến môi trường sang một thùng chứa mới và cách khác là thêm tệp cấu hình.

Dưới đây là một vài tùy chọn cấu hình phổ biến chúng tôi sẽ sử dụng:

  • loglevel- Lượng thông tin tối thiểu để đăng nhập vào bàn điều khiển. Mặc định là info.
  • standalone- Đăng ký này có nên tự hành động không? (Không bao giờ truy vấn sổ đăng ký công khai.) Mặc định là true.
  • index_endpoint- Nếu không độc lập, chúng ta sẽ truy vấn chỉ mục nào khác? Mặc định index.docker.io.
  • cachecache_lru- Tùy chọn liên quan đến việc sử dụng bộ đệm Redis cho các tệp nhỏ, chúng ta sẽ chạm vào điều này sau.
  • storage- Chúng ta nên sử dụng phụ trợ lưu trữ nào cho máy chủ này? (Trong hướng dẫn này, chúng tôi sẽ sử dụng địa phương).
  • storage_path - Nếu sử dụng bộ nhớ cục bộ, chúng ta nên sử dụng thư mục nào để giữ tập tin?

Trước khi chúng tôi làm việc với cấu hình, chúng tôi cần một tệp cơ sở để làm việc. Tệp từ kho lưu trữ Docker Registry trên GitHub sẽ hoạt động tốt:

wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml

Các tập tin nên lưu thành công với một đầu ra như:

2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]

Tuyệt quá! Bây giờ chúng tôi có thể sửa đổi tập tin này để phù hợp với nhu cầu của chúng tôi.

Trình chỉnh sửa văn bản duy nhất đi kèm với Core OS là vim, nhưng đừng lo lắng nếu bạn chưa từng sử dụng nó trước đây, điều này sẽ giải thích từng bước cần chỉnh sửa và cách thực hiện.

vim config_sample.yml

Khi bạn mở tệp, nhấn Ivà góc dưới bên phải sẽ hiển thị: -- INSERT --cho chế độ chèn. Cuộn toàn bộ đến cuối tập tin bằng các phím mũi tên của bạn, bạn sẽ thấy một phần có nhãn prod.

Chúng tôi sẽ thay đổi hai dòng, những thay đổi dưới đây

prod:
    <<: *local
    storage_path: _env:STORAGE_PATH:/data

Những gì chúng tôi đã làm là thay đổi prodcấu hình để lấy từ localphần thay vì s3phần. Sau đó, chúng tôi ghi đè lên storage_pathđể sử dụng đường dẫn /databên trong container mới.

Khi bạn đã xác nhận rằng tất cả các thay đổi là chính xác, hãy nhấn ESCđể thoát chế độ chèn và nhập :wq(điều này có nghĩa là ghi các thay đổi vào tệp và thoát vim.)

Bây giờ hãy đổi tên tập tin thành config.yml

mv config_sample.yml config.yml

Redis bộ nhớ đệm (tùy chọn)

Nếu bạn muốn sử dụng redis để tăng tốc đăng ký container của mình, thì đơn giản như kéo một container mới từ sổ đăng ký công cộng và thêm một vài dòng cấu hình.

Đầu tiên, kéo hình ảnh cấp cao nhất của Redis:

docker pull redis

Khi hình ảnh được kéo thành công, chúng ta có thể chạy nó và đặt tên giống như chúng ta đã làm với sổ đăng ký thử nghiệm:

docker run -d --name registry-redis redis

Vì redis nằm trong bộ nhớ, chúng tôi không cần thực hiện bất kỳ cấu hình nào cho nó, vì chúng tôi sẽ liên kết nó với thùng chứa đăng ký trong các bước sau.

Một lần nữa, đảm bảo nó chạy bằng cách sử dụng docker ps:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
54f65641eccf        redis:2.8           "redis-server"      2 seconds ago       Up 1 seconds        6379/tcp            registry-redis

Bây giờ mở lại config.ymltrong vimvà nhập chèn chế độ giống như lần đầu tiên chúng tôi sửa nó.

Thêm các dòng sau bên dưới prodphần, chắc chắn để thụt lề đúng cách. Lần này chúng tôi chỉ thêm cachecache_lru.

cache:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 0

cache_lru:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 1

Các biến môi trường REDIS_PORT_6379_TCP_ADDRREDIS_PORT_6379_TCP_PORTđược chuyển đến vùng chứa đăng ký khi liên kết với vùng chứa Redis.

Cùng với đó, giờ đây bạn đã thiết lập một thùng chứa Redis sẽ hoạt động song song với thùng chứa đăng ký của bạn. Bây giờ vào việc xây dựng sổ đăng ký!

Xây dựng container

Chúng tôi có tất cả các cấu hình được thiết lập và sẵn sàng, bây giờ chúng tôi cần xây dựng bộ chứa đăng ký thực tế.

vim DockerfileBật lên để tạo Dockerfile mới. Nhập chế độ chèn và làm theo các chỉnh sửa bên dưới.

FROM registry:latest

# Add the custom configuration file we made 
ADD ./config.yml /docker-registry/config/config.yml

# Create the data directory
RUN mkdir /data

# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml

# Make sure we use the prod configuration settings 
env SETTINGS_FLAVOR prod

Những gì chúng tôi đã làm ở trên về cơ bản là mở rộng hình ảnh đăng ký để nó sẽ sử dụng tệp cấu hình và cài đặt của chúng tôi. Dockerfile là một tập hợp các hướng dẫn xây dựng để Docker đọc và xây dựng. Nếu bạn muốn tìm hiểu thêm về Dockerfiles và cú pháp của họ, hãy xem tài liệu trang web chính thức của Docker.

Tiếp theo chúng ta cần xây dựng container để sử dụng.

docker build -t my_registry .


Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon 
Step 0 : FROM registry
 ---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
 ---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
 ---> Running in a090f0bdbfd1
 ---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
 ---> Running in 565b5bfb2b22
 ---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
 ---> Running in 31a92847b851
 ---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374

Bây giờ chúng tôi đã sẵn sàng để chạy!

Hãy tạo một thư mục trên hệ thống máy chủ của chúng tôi để gắn vào thùng chứa dưới dạng /dataâm lượng.

mkdir registry-data

Bây giờ chúng ta có thể quay lên một container mới. Nếu bạn có kế hoạch sử dụng bộ đệm Redis, hãy sử dụng lệnh thứ 2 bên dưới.

# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry

# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry

Để đảm bảo rằng máy chủ của bạn đang chạy chính xác, hãy truy cập http://YOUR_IP:5000. Bạn sẽ thấy thông báo sau:

"docker-registry server (prod) (v0.8.1)"

Lưu (prod)ý ý nghĩa thay đổi cấu hình của chúng tôi đã thành công!

Định cấu hình máy khách Docker cục bộ của bạn

Bây giờ chúng tôi có đăng ký đang chạy của riêng mình, chúng tôi muốn máy khách Docker trên các máy cục bộ của chúng tôi bắt đầu sử dụng nó. Thông thường bạn sẽ sử dụng lệnh : docker login, nhưng để sử dụng, chúng ta cần thêm một đối số nữa vào lệnh đăng nhập:

docker login YOUR_IP:5000

Nhập tên người dùng và mật khẩu (nghĩ về điều này giống như tạo một tài khoản mới) và bỏ qua thông báo cho biết bạn phải kích hoạt nó.

Tiếp theo, hãy kéo một hình ảnh chứng khoán và đẩy nó lên kho lưu trữ của chúng ta.

# Pull the busybox image from the public registry
docker pull busybox

# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox

# Push it to our newly made registry
docker push YOUR_IP:5000/busybox

Nếu mọi thứ đẩy chính xác, thông báo cuối cùng sẽ nằm dọc theo dòng:

Pushing tag for rev [a9eb17255234] on 

Xin chúc mừng! Bạn đã thiết lập kho lưu trữ docker rất riêng của bạn.

Cái gì tiếp theo?

Dưới đây là một số ý tưởng về cách cải thiện sổ đăng ký riêng mới của bạn:

  • Đảo ngược proxy bằng Nginx hoặc Apache để đặt bảo mật bổ sung phía trước nó, như xác thực HTTP đơn giản.
  • Nhận một tên miền cho máy chủ của bạn và thiết lập nó để bạn có thể truy cập vào sổ đăng ký của mình với một cái gì đó như: registry.mysite.com
  • Mua (hoặc tự ký) một chứng chỉ SSL để thêm sự bảo vệ hơn nữa nếu các thùng chứa của bạn chứa thông tin nhạy cảm.

Thêm hình mờ nền vào tài liệu Word của bạn

Thêm hình mờ nền vào tài liệu Word của bạn

Microsoft Word cho phép bạn thêm hình mờ vào tài liệu của mình. Hình mờ là những hình ảnh hoặc văn bản nhẹ phía sau văn bản thông thường trong tài liệu của bạn.

Tạo danh sách phân phối Outlook \ Nhóm

Tạo danh sách phân phối Outlook \ Nhóm

Outlook và nhiều ứng dụng e-mail khác có một tính năng cho phép bạn gửi e-mail đến nhiều người nhận cùng một lúc bằng cách sử dụng danh sách phân phối. Bằng cách này khi bạn gửi e-mail, bạn chỉ cần đặt tên danh sách phân phối vào hộp Tới:

5 Xu hướng thiết kế web bổ sung cho nhau

5 Xu hướng thiết kế web bổ sung cho nhau

Luôn có những thứ bổ sung cho nhau. Cho dù đó là ghép nối các loại thực phẩm, kinh nghiệm hay thậm chí là các mối quan hệ cá nhân; một số thứ chỉ hoạt động tốt hơn khi có thứ gì đó khác hỗ trợ nó. Thiết kế web không có gì khác biệt. Có một số kỹ thuật nhất định dựa vào thứ gì đó khác để nó có hiệu quả hoặc thậm chí hoạt động bình thường.

Đã xảy ra sự cố khi gửi lệnh đến lỗi chương trình trong Excel

Đã xảy ra sự cố khi gửi lệnh đến lỗi chương trình trong Excel

Nếu bạn sử dụng Excel 2007 hoặc 2010, bạn có thể gặp lỗi khi mở Excel hoặc nhấp đúp vào tệp Excel có thông báo Đã xảy ra sự cố khi Gửi lệnh tới Chương trình. Điều này có thể được gây ra bởi một vài điều khác nhau.

Favicons là gì và cách sử dụng chúng

Favicons là gì và cách sử dụng chúng

Biểu tượng yêu thích là một hình ảnh nhỏ riêng lẻ của một trang web được hiển thị bên cạnh thanh địa chỉ. Tùy thuộc vào trình duyệt, nó cũng xuất hiện trong dấu trang / dấu trang trong thanh công cụ dấu trang và thanh bảng hoặc dưới dạng lối tắt trên màn hình.

Thay đổi chủ đề Microsoft Outlook của bạn

Thay đổi chủ đề Microsoft Outlook của bạn

Nếu bạn là người dùng Outlook thì bạn có thể tạo phong cách hoặc chủ đề của riêng mình cho các thư email gửi đi của mình chỉ với một vài cú nhấp chuột.

Sử dụng Windows Photo Viewer trong Windows 10

Sử dụng Windows Photo Viewer trong Windows 10

Nếu bạn thích sử dụng Windows Photo Viewer trong Windows 7 nhưng nhận thấy rằng bạn không thể sử dụng nó trong Windows 10 thì đây là cách bạn lấy lại.

Trình giả lập tốt nhất để chơi trò chơi Nintendo DS trên máy tính của bạn

Trình giả lập tốt nhất để chơi trò chơi Nintendo DS trên máy tính của bạn

Ngày nay, hình thức chơi game phổ biến nhất liên quan đến các trò chơi cũ, cổ điển là sử dụng trình giả lập. Hôm nay chúng tôi sẽ giới thiệu cho bạn một số trình giả lập tốt nhất cho Nintendo DS chạy trên mọi máy tính. Sau đó, tất cả những gì bạn phải làm là tải xuống trình giả lập NDS và các trò chơi và bạn đã sẵn sàng chơi.

Thay đổi Phông chữ Mặc định cho Tài liệu Word Mới

Thay đổi Phông chữ Mặc định cho Tài liệu Word Mới

Nếu bạn có một phông chữ nhất định mà bạn muốn sử dụng cho tất cả các tài liệu Word của mình, có một cách để làm cho Word sử dụng phông chữ đó theo mặc định mỗi khi bạn bắt đầu một tài liệu mới. Làm theo các bước đơn giản.

3 cách để tắt tính năng nén tệp tự động trong Windows

3 cách để tắt tính năng nén tệp tự động trong Windows

Bây giờ chúng ta sẽ đi vào cách ngăn Windows tự động nén tệp của bạn, do đó bạn không cần phải lo lắng về điều này xảy ra nữa.