<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 搭建docker私有化鏡像倉庫 基于操作系統:CentOS 8.4 **搭建此私有鏡像倉庫是為了制作并推送商城后端服務。** 1. 更換國內鏡像加速器。 ~~~shell "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] ~~~ 2. 修改/etc/docker/daemon.json文件: ~~~powershell vim /etc/docker/daemon.json ~~~ 以下內容: ~~~powershell { "log-driver":"json-file", "log-opts": {"max-size":"50m", "max-file":"3"}, "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] } ~~~ 3. Docker開啟遠程API: 用vim編輯器修改docker.service文件: ~~~powershell vim /usr/lib/systemd/system/docker.service ~~~ ~~~ 需要修改的部分: ~~~ ~~~powershell ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ~~~ ~~~ 修改后的部分: ~~~ ~~~powershell ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock ~~~ #### **注意:**如果docker服務使用寶塔安裝的,以上修改配置文件的路徑不生效的,可以查看修改配置文件路徑為:`/etc/systemd/system/docker.service.d/docker.conf` 修改后的部分: ~~~shell ExecStart=/usr/bin/dockerd --default-ulimit nofile=65535:65535 -H fd:// -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=/data/docker-ca/ca.pem --tlscert=/data/docker-ca/server-cert.pem --tlskey=/data/docker-ca/server-key.pem ~~~ ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_9d8fd9a1cc88929d068073ff5e39b45b_r.png "null") 3. 重啟docker: ~~~powershell sudo systemctl daemon-reload sudo systemctl restart docker ~~~ 4. 下載registry:2.5鏡像 ~~~powershell docker pull registry:2.5 ~~~ 5. 創建用于持久化保存倉庫中的鏡像目錄及相關配置。 ~~~powershell mkdir -p /data/registry mkdir -p /data/registry/auth mkdir -p /data/registry/config ~~~ 6. 生成賬號密碼: ~~~powershell docker run --entrypoint htpasswd registry:2.5 -Bbn name password >> /data/registry/auth/htpasswd ~~~ 7. 設置配置文件: ~~~powershell vim /data/registry/config/config.yml ~~~ 以下內容: ~~~powershell version: 0.1 log: fields: service: registry storage: delete: enabled: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :5000 headers: X-Content-Type-Options: [nosniff] health: storagedriver: enabled: true interval: 10s threshold: 3 ~~~ 8. 啟動鏡像: ~~~powershell docker run -d -p 5000:5000 --restart=always --name=registry \ -v /data/registry/config/:/etc/docker/registry/ \ -v /data/registry/auth/:/auth/ \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -v /data/registry/:/var/lib/registry/ \ registry:2.5 ~~~ 9. 開啟 http 形式訪問私有倉庫模式: ~~~powershell vim /etc/docker/daemon.json ~~~ 加入以下內容:127.0.0.1換成你自己的IP。 ~~~powershell {"insecure-registries":["127.0.0.1:5000"]} ~~~ 10. 重啟docker: ~~~powershell sudo systemctl daemon-reload sudo systemctl restart docker ~~~ ## 由于端口暴露在外網,考慮安全性增加ca證書驗證。 11. 創建存放證書的目錄: ~~~shell mkdir /data/docker-ca && cd /data/docker-ca ~~~ 12. 創建CA證書私鑰,期間需要輸入兩次用戶名和密碼,生成文件為ca-key.pem; ~~~shell openssl genrsa -aes256 -out ca-key.pem 4096 ~~~ 13. 根據私鑰創建CA證書,期間需要輸入上一步設置的私鑰密碼,生成文件為ca.pem; ~~~shell openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem ~~~ 14. 創建服務端私鑰,生成文件為server-key.pem; ~~~shell openssl genrsa -out server-key.pem 4096 ~~~ 15. 創建服務端證書簽名請求文件,用于CA證書給服務端證書簽名,生成文件server.csr; ~~~shell openssl req -subj "/CN=*" -sha256 -new -key server-key.pem -out server.csr ~~~ 16. 創建CA證書簽名好的服務端證書,期間需要輸入CA證書私鑰密碼,生成文件為server-cert.pem; ~~~shell openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem ~~~ 17. 創建客戶端私鑰,生成文件為key.pem; ~~~shell openssl genrsa -out key.pem 4096 ~~~ 18. 創建客戶端證書簽名請求文件,用于CA證書給客戶證書簽名,生成文件client.csr; ~~~shell openssl req -subj "/CN=client" -new -key key.pem -out client.csr ~~~ 19. 為了讓秘鑰適合客戶端認證,創建一個擴展配置文件extfile-client.cnf; ~~~shell echo extendedKeyUsage = clientAuth > extfile-client.cnf ~~~ 20. 創建CA證書簽名好的客戶端證書,期間需要輸入CA證書私鑰密碼,生成文件為cert.pem; ~~~shell openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf ~~~ 21. 刪除創建過程中多余的文件; ~~~shell rm -rf ca.srl server.csr client.csr extfile-client.cnf ~~~ 22. 最終生成文件如下,有了它們我們就可以進行基于TLS的安全訪問了。 ~~~shell ca.pem CA證書 ca-key.pem CA證書私鑰 server-cert.pem 服務端證書 server-key.pem 服務端證書私鑰 cert.pem 客戶端證書 key.pem 客戶端證書私鑰 ~~~ 23. 配置Docker支持TLS,用vim編輯器修改docker.service文件; ~~~shell vim /usr/lib/systemd/system/docker.service ~~~ 24. 修改以ExecStart開頭的配置,開啟TLS認證,并配置好CA證書、服務端證書和服務端私鑰,修改內容如下; ~~~shell ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=/data/docker-ca/ca.pem --tlscert=/data/docker-ca/server-cert.pem --tlskey=/data/docker-ca/server-key.pem -H unix://var/run/docker.sock --data-root /data/docker ~~~ #### **注意:**如果docker服務使用寶塔安裝的,以上修改配置文件的路徑不生效的,可以查看修改配置文件路徑為:`/etc/systemd/system/docker.service.d/docker.conf` 修改后的部分: ~~~shell ExecStart=/usr/bin/dockerd --default-ulimit nofile=65535:65535 -H fd:// -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=/data/docker-ca/ca.pem --tlscert=/data/docker-ca/server-cert.pem --tlskey=/data/docker-ca/server-key.pem ~~~ ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_9d8fd9a1cc88929d068073ff5e39b45b_r.png "null") 25. 重啟Docker服務,這樣我們的Docker服務就支持使用TLS進行遠程訪問了! ~~~shell systemctl daemon-reload systemctl restart docker ~~~ 26. 下載證書: ~~~shell ca.pem CA證書 cert.pem 客戶端證書 key.pem 客戶端證書私鑰 ~~~ **代碼中已集成** 使用docker-maven-plugin來打包Docker鏡像: 注意:一定要加https。開啟TLS不再支持http了,需要改用https,修改配置為https。否則報:`HTTP 400 Bad Request` ~~~shell <dockerHost>https://192.168.3.101:2375</dockerHost> <dockerCertPath>D:\docker-ca</dockerCertPath> #本機存放證書密碼的目錄 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看