6-搭建一個私有registry

6-搭建一個私有registry

docker hub 查找 registry

docker hub registry

在這里插入圖片描述

可以看到部署很簡單,只有一條命令。

docker run -d -p 5000:5000 --restart always --name registry registry:2

部署私有registry

  1. 找一臺linux的服務器并安裝好docker

  2. 在此服務器上部署registry

    docker run -d -p 5000:5000 --restart always --name registry registry:2
    

    查看是否成功

    root@vultr:~# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    46da49c00f3d        registry:2          "/entrypoint.sh /etc…"   2 hours ago         Up 2 hours          0.0.0.0:5000->5000/tcp   scijet-registry
  3. 測試本地是否能夠連接服務器的ip
    安裝 telnet

    sudo yum install telnet
    

    連通5000端口

    [vagrant@10 ~]$ telnet 144.202.112.240 5000
    

    如果出現以下內容則通過

    Trying 144.202.112.240...
    Connected to 144.202.112.240.
    Escape character is '^]'.
    
  4. 推送到私有registry

    [vagrant@10 hello-word]$ docker push 144.202.112.240:5000/hello-word
    The push refers to repository [144.202.112.240:5000/hello-word]
    Get https://144.202.112.240:5000/v2/: http: server gave HTTP response to HTTPS client
    

    直接推送是會報錯的,原因是docker 認為這個registry是不安全的,未認證的。
    但是我們可以通過修改配置文件來解決。

    nano /etc/docker/daemon.json
    

    增加此配置,含義就是聲明這個倉庫是可信任的

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

    在docker的服務配置文件內增加一段配置

    sudo nano /lib/systemd/system/docker.service
    
    ExecStart=/usr/bin/dockerd -H fd://    # 在這一條配置下面
    EnvironmentFile=-/etc/docker/daemon.json  # 增加的內容
    

    重啟docker服務

    sudo systemctl daemon-reload   # 因為文件改變 所以重新加載守護進程
    sudo service docker restart  # 重啟docker 服務
    

    推送

    docker push 144.202.112.240:5000/hello-word
    

    結果

    The push refers to repository [144.202.112.240:5000/hello-word]
    c4afafdc2fdb: Pushed 
    latest: digest: sha256:8eb5ca719b342a746102453ec63c016f0abe92edc2a32a07b96c274b5a37bcdb size: 527
    
  5. 驗證

    私有的registry是沒有web界面的,所以我們可以通過api來驗證

    api 網址

    在這里插入圖片描述

    在這里插入圖片描述

    返回倉庫內的鏡像,查看是否剛剛提交的鏡像在內。

    也可以使用 curl

    curl http://144.202.112.240:5000/v2/_catalog 
    
  6. 拉取鏡像

    首先我們先把剛剛創建的鏡像刪除,然后從私有倉庫內拉取回來

    docker rmi 144.202.112.240:5000/hello-word
    

    拉取

    [vagrant@10 hello-word]$ docker pull 144.202.112.240:5000/hello-word
    Using default tag: latest
    latest: Pulling from hello-word
    Digest: sha256:8eb5ca719b342a746102453ec63c016f0abe92edc2a32a07b96c274b5a37bcdb
    Status: Downloaded newer image for 144.202.112.240:5000/hello-word:latest
    

    查看是否成功拉取回來

    [vagrant@10 hello-word]$ docker images
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
    144.202.112.240:5000/hello-word   latest              bb6f23084c78        24 hours ago        857kB
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536040.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

7-深入練習Dockerfile

7-深入練習Dockerfile 創建一個json-server 鏡像 首先創建一個 json-server 文件夾 mkdir json-server在json-server文件夾下創建Dockerfile FROM node:10.15.0 RUN npm install -g json-server構建鏡像 docker build -t json-server .創建一個api服務的鏡像 首先創建一個 …

8-容器操作

8-容器操作 普通操作 進入容器 docker exec -it api /bin/bash容器停止與啟動 docker stop api docker start api容器重啟 docker restart api查看容器詳細信息 docker inspect api查看日志 docker logs api容器刪除 docker stop api # 必須先停止才能刪除 docker rm…

9-資源限制

9-資源限制 了解stress工具 stress是一個壓力測試工具 docker run -it ubuntu:16.04此時會進入ubuntu內,這時我們安裝 stress工具 apt-get update && apt-get install -y stress查看help stress --helpUsage: stress [OPTION [ARG]] ...-?, --help …

10-Docker 網絡

10-Docker 網絡 基礎網絡概念 數據傳輸通過數據包 兩臺筆記本之間通信是通過數據包通信的。想知道數據包是怎么打包的呢,就先要知道網絡分層的概念。 網絡分層 目前有兩種網絡分層的模型。 ISO/OSI 分層,也就是 7 層模型。TCP/IP 分層,也就…

11-Docker Bridge詳解

11-Docker Bridge詳解 容器之間是如何通信的? 操作前刪除test2的容器。 查看當前機器上docker的網絡 docker network lsNETWORK ID NAME DRIVER SCOPE 056d0ece100f bridge bridge local a…

12-容器之間link

12-容器之間link 這篇主要講 容器之間如何 link。 需要準備的是,創建兩個容器 test1 和 test2 通過 busybox。 在之前的課程中已經創建的只需要重新啟動即可。 什么情況下需要link 例如有一個容器是 web 服務器,并且跑在一個docker容器內,…

13-容器的端口映射

13-容器的端口映射 部署一個簡單web nginx容器 docker run -d --name web nginxnginx 默認的端口是 80 端口,此時我們是沒有辦法訪問的。 好的,通過前面的學習我們已經知道,這個 web 容器四連接到 bridge 網橋上的,那我們查看一…

14-容器網絡之host和none

14-容器網絡之host和none 在之前的小節,我們有看到過 host 和 none。 通過 docker network ls 查看。 none 網絡 刪除 test1 容器 docker stop test1 && docker rm test1創建 test1 容器并連接到none網絡 docker run -d --name test1 --network none busy…

15-多容器復雜應用的部署

15-多容器復雜應用的部署 此節主要是通過部署一個復雜的應用場景,進而練習容器的網絡相關知識。 創建一個flask-web應用 創建一個 flask-web 文件夾 mkdir flask-web在此文件夾內創建 app.py 文件 cd flask-web touch app.py編寫一個簡單的 web 程序 import os im…

16-多機器通信

16-多機器通信 回顧上節課的思考題。 flask-redis 想訪問 redis,該如何通信? 創建另外一臺linux虛擬機 直接拷貝Vagrantfile文件創建一個 centos 虛擬機 我們創建一個centos7-2文件夾,然后創建虛擬機 vagrant up創建的過程中提示選擇網絡接…

17-Docker的數據持久化介紹

17-Docker的數據持久化介紹 回顧容器與鏡像 容器是在鏡像之上創建的一層運行時層,這一層是可以讀寫的,我們能夠在容器內添加數據,讀取數據。 也就是說我們在創建容器的時候,我們能夠在容器內創建文件,安裝軟件等等&a…

18-數據持久化-Data Volume

18-數據持久化-Data Volume Data Volume 使用場景。一般來講有些容器自己會產生一些數據,我們不想數據隨著容器的銷毀而銷毀,我們想保存數據,正常一般用在數據庫,比如我們想保存數據庫中的數據,這個時候我們就會使用 …

19-數據持久化-Bind Mounting

19-數據持久化-Bind Mounting Bind Mounting 與 Data Volume區別 Data Volume 需要在 Dockerfile 內聲明需要創建的 volume 目錄。 Bind Mounting 則不需要在 Dockerfile 聲明 volume,只需要在創建容器的時候,也就是 run 的時候聲明即可。 如: dock…

go自定義包教程

go自定義包教程 而是環境為 go version go1.11 linux/amd64linux mint 19 創建一個自定義的包 切換到src目錄下,創建demo目錄 cd src mkdir demo再創建smap 文件夾 cd demo mkdir smap創建包文件 cd smap touch map.gomap.go文件內容 package smapimport "…

在Linux中對硬盤進行分區、格式化和掛載

在Linux中對硬盤進行分區、格式化和掛載 我最近有一個全新的4-TB硬盤加入我的電腦。所以我需要在Linux中安裝它。為此,我需要執行以下操作: 分區格式化掛載檢查是否已安裝硬盤驅動器 分區 首先,在通過SATA和電源線將硬盤連接到計算機后&am…

Angular gitlab持續集成之runner配置

gitlab持續集成 安裝Runner 正常安裝 sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64sudo chmod x /usr/local/bin/gitlab-runner sudo useradd --comment GitLab Runner --creat…

javascript編譯壓縮

javascript編譯 js是JavaScript 源碼文件, .min.js是壓縮版的js文件。 .min.js文件經過壓縮,相對編譯前的js文件體積較小,傳輸效率快。經過編碼將變量和函數原命名改為毫無意義的命名,以防止他人窺視和竊取 js 源代碼 在線版 g…

vscode設置中文

vscode設置中文 當我們安裝完成vscode后,會發現它是中文的,因為默認情況下,vscode使用的語言為英文(us)。 那很多同學是不喜歡英文的,不是看不懂,而是不方便哈。 修改語言配置文件 使用快捷鍵組合【CtrlShiftp】 在…

linux下編譯boost

linux下編譯boost 下載boot庫 官方下載地址 下載完成會解壓。 編譯 1.進入解壓后的文件夾內 cd boost_1_69_0 執行下面的語句 ./bootstrap.sh --with-librariesall --with-toolsetgcc–with-libraries 指定編譯哪些boost庫,all的話就是全部編譯,只想…

C++通過原子變量代替互斥量

C通過原子變量代替互斥量 廢話不多說&#xff0c;直接上代碼。 實現類似lock_guard功能 #include <atomic> #include <thread>class ClockGuard { public:ClockGuard(std::atomic_flag & atomic):m_lockedFlag(atomic){lock();}~ClockGuard(){unlock();}voi…