主頁 >  其他 > kubernetes(十二) 部署 harbor 私有倉庫

kubernetes(十二) 部署 harbor 私有倉庫

2020-09-15 03:00:35 其他

安裝下載依賴包

  1. 安裝docker-compose

    從 docker compose 發布頁面下載最新的 docker-compose 二進制檔案,本文以1.25.4為例

    cd /opt/k8s/work/harbor/
    
    wget https://github.com/docker/compose/releases/download/1.25.4/docker-compose-Linux-x86_64
    
    mv docker-compose-Linux-x86_64 /opt/k8s/bin/docker-compose
    chmod a+x  /opt/k8s/bin/docker-compose
    export PATH=/opt/k8s/bin:$PATH
    
    
  2. 下載harbor二進制檔案

    從 harbor 發布頁面下載最新的 harbor 離線安裝包,本文以v1.9.4為例

    cd /opt/k8s/work/harbor/
    
    wget https://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz
    
    tar -xzvf harbor-offline-installer-v1.5.1.tgz
    
    
  3. 匯入 docker images
    匯入離線安裝包中 harbor 相關的 docker images

    cd /opt/k8s/work/harbor/harbor
    docker load -i harbor.v1.9.4.tar.gz
    
    

以http形式啟動

  1. 修改harbor.yml檔案
    修改 hostname、data_volume屬性值

    cd /opt/k8s/work/harbor/harbor
    
    cp harbor.yml harbor.yml.bak
    
    vim harbor.yml
    
    

    修改資訊如下

    diff harbor.yml harbor.yml.bak
    5c5
    < hostname: 192.168.0.107
    ---
    > hostname: reg.mydomain.com
    40c40
    < data_volume: /data/k8s/harbor/data
    ---
    > data_volume: /data
    
    
  2. 加載和啟動 harbor 鏡像

    cd /opt/k8s/work/harbor/harbor
    mkdir -p /data/k8s/harbor/data
    chmod 777 /var/run/docker.sock /data/k8s/harbor/data
    ./install.sh
    
    

    啟動日志

    
    Note: docker version: 18.09.6
    
    Note: docker-compose version: 1.25.4
    # Configuration file of Harbor
    
    [Step 1]: loading Harbor images ...
    Loaded image: goharbor/harbor-core:v1.9.4
    Loaded image: goharbor/clair-photon:v2.1.0-v1.9.4
    Loaded image: goharbor/harbor-portal:v1.9.4
    Loaded image: goharbor/nginx-photon:v1.9.4
    Loaded image: goharbor/chartmuseum-photon:v0.9.0-v1.9.4
    Loaded image: goharbor/prepare:v1.9.4
    Loaded image: goharbor/redis-photon:v1.9.4
    Loaded image: goharbor/registry-photon:v2.7.1-patch-2819-2553-v1.9.4
    Loaded image: goharbor/notary-server-photon:v0.6.1-v1.9.4
    Loaded image: goharbor/harbor-log:v1.9.4
    Loaded image: goharbor/harbor-db:v1.9.4
    Loaded image: goharbor/harbor-jobservice:v1.9.4
    Loaded image: goharbor/harbor-registryctl:v1.9.4
    Loaded image: goharbor/notary-signer-photon:v0.6.1-v1.9.4
    Loaded image: goharbor/harbor-migrator:v1.9.4
    
    
    [Step 2]: preparing environment ...
    prepare base dir is set to /opt/k8s/work/harbor/harbor
    Generated configuration file: /config/log/logrotate.conf
    Generated configuration file: /config/log/rsyslog_docker.conf
    Generated configuration file: /config/nginx/nginx.conf
    Generated configuration file: /config/core/env
    Generated configuration file: /config/core/app.conf
    Generated configuration file: /config/registry/config.yml
    Generated configuration file: /config/registryctl/env
    Generated configuration file: /config/db/env
    Generated configuration file: /config/jobservice/env
    Generated configuration file: /config/jobservice/config.yml
    Generated and saved secret to file: /secret/keys/secretkey
    Generated certificate, key file: /secret/core/private_key.pem, cert file: /secret/registry/root.crt
    Generated configuration file: /compose_location/docker-compose.yml
    Clean up the input dir
    
    
    
    [Step 3]: starting Harbor ...
    Creating network "harbor_harbor" with the default driver
    Creating harbor-log ... done
    Creating harbor-db     ... done
    Creating redis         ... done
    Creating harbor-portal ... done
    Creating registry      ... done
    Creating registryctl   ... done
    Creating harbor-core   ... done
    Creating harbor-jobservice ... done
    Creating nginx             ... done
    
    ? ----Harbor has been installed and started successfully.----
    
    Now you should be able to visit the admin portal at http://192.168.0.107.
    For more details, please visit https://github.com/goharbor/harbor .
    
    

    查看啟動狀態

    root@master:/opt/k8s/work/harbor/harbor# docker-compose ps
      	Name                     Command                  State                 Ports
    ---------------------------------------------------------------------------------------------
    harbor-core         /harbor/harbor_core              Up (healthy)
    harbor-db           /docker-entrypoint.sh            Up (healthy)   5432/tcp
    harbor-jobservice   /harbor/harbor_jobservice  ...   Up (healthy)
    harbor-log          /bin/sh -c /usr/local/bin/ ...   Up (healthy)   127.0.0.1:1514->10514/tcp
    harbor-portal       nginx -g daemon off;             Up (healthy)   8080/tcp
    nginx               nginx -g daemon off;             Up (healthy)   0.0.0.0:80->8080/tcp
    redis               redis-server /etc/redis.conf     Up (healthy)   6379/tcp
    registry            /entrypoint.sh /etc/regist ...   Up (healthy)   5000/tcp
    registryctl         /harbor/start.sh                 Up (healthy)                            
    
    
    • 如果有不是healthy狀態的物件,到/var/log/harbor/目錄下查看對應物件的日志

    • harbor官方提供的啟動檔案中容器的日志型別是syslog,不支持用docker logs查看

      
      ls /var/log/harbor/
      

core.log jobservice.log portal.log postgresql.log proxy.log redis.log registryctl.log registry.log

	```

瀏覽器訪問 http://192.168.0.107,用賬號 admin 和 harbor.yml 組態檔中的默認密碼 Harbor12345 登陸系統,
![](https://img2018.cnblogs.com/blog/1918821/202002/1918821-20200214210112961-1493493575.png)
  1. 創建一個新的專案

  2. docker命令拉取和上傳鏡像

    1. 執行login

      root@slave:~# docker login -u admin -p Harbor12345 192.168.0.107
      WARNING! Using --password via the CLI is insecure. Use --password-stdin.
      Error response from daemon: Get https://192.168.0.107/v2/: dial tcp 192.168.0.107:443: connect: connection refused
      
      
    2. 因為docker命令默認采用https和API互動,而我們的harbor是http的,所以不能執行,需要在/etc/docker/daemon.json中追加insecure-registries配置

      {
          "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"],
          "insecure-registries": ["192.168.0.107"],
          "max-concurrent-downloads": 20,
          "live-restore": true,
          "max-concurrent-uploads": 10,
          "data-root": "/data/k8s/docker/data",
          "log-opts": {
            "max-size": "100m",
            "max-file": "5"
          }
      }
      
      
    3. 重新啟動docker服務

      root@slave:~# systemctl restart docker
      
      root@slave:~# docker login -u admin -p Harbor12345 192.168.0.107
      WARNING! Using --password via the CLI is insecure. Use --password-stdin.
      WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
      Configure a credential helper to remove this warning. See
      https://docs.docker.com/engine/reference/commandline/login/#credentials-store
      
      Login Succeeded
      
      
    4. 向harbor中剛創建的私有專案里面上傳鏡像

      root@slave:~# docker tag k8s.gcr.io/pause:3.1 192.168.0.107/k8s/pause:3.1
      root@slave:~# docker push 192.168.0.107/k8s/pause:3.1
      The push refers to repository [192.168.0.107/k8s/pause]
      e17133b79956: Pushed
      3.1: digest: sha256:fcaff905397ba63fd376d0c3019f1f1cb6e7506131389edbcb3d22719f1ae54d size: 527
      
      
    5. 瀏覽器查看

    6. 從harbor中下載鏡像

      root@slave:~# docker rmi  192.168.0.107/k8s/pause:3.1
      Untagged: 192.168.0.107/k8s/pause:3.1
      Untagged: 192.168.0.107/k8s/pause@sha256:fcaff905397ba63fd376d0c3019f1f1cb6e7506131389edbcb3d22719f1ae54d
      root@slave:~# docker pull  192.168.0.107/k8s/pause:3.1
      3.1: Pulling from k8s/pause
      Digest: sha256:fcaff905397ba63fd376d0c3019f1f1cb6e7506131389edbcb3d22719f1ae54d
      Status: Downloaded newer image for 192.168.0.107/k8s/pause:3.1
      
      

以https形式啟動

下列操作的作業目錄/opt/k8s/work/harbor/harbor是解壓harbor離線安裝檔案后 生成的 harbor 目錄

  1. 停止harbor(如果沒有啟動過,則跳過該步驟)

    cd /opt/k8s/work/harbor/harbor
    
    root@master:/opt/k8s/work/harbor/harbor# COMPOSE_HTTP_TIMEOUT=200 docker-compose down -v
    Stopping nginx             ... done
    Stopping harbor-jobservice ... done
    Stopping harbor-core       ... done
    Stopping registryctl       ... done
    Stopping redis             ... done
    Stopping harbor-portal     ... done
    Stopping harbor-db         ... done
    Stopping registry          ... done
    Stopping harbor-log        ... done
    Removing harbor-log        ... done
    Removing network harbor_harbor
    
    
    • 執行docker-compose down -v后,有可能對應的容器還在,可以執行強制停掉容器

      docker ps | grep harbor | awk '{print $1}' | xargs -I {} docker rm -f {}
      
      
  2. 創建 harbor nginx 服務器使用的 x509 證書,本檔案采用cfssl工具生成,也可以利用openssl生成,具體步驟參考harbor-openssl

    1. 創建harbor用的CA根證書

      1. 創建組態檔

        cd /opt/k8s/work/harbor/
        cat > harbor-ca-config.json <<EOF
        {
          "signing": {
            "default": {
              "expiry": "87600h"
            },
            "profiles": {
              "harbor": {
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth",
                    "client auth"
                ],
                "expiry": "87600h"
              }
            }
          }
        }
        EOF
        
        
      2. 創建證書簽名請求檔案

        cd /opt/k8s/work/harbor/
        
        cat > harbor-ca-csr.json <<EOF
        {
          "CN": "harbor-ca",
          "key": {
            "algo": "rsa",
            "size": 2048
          },
          "names": [
            {
              "C": "CN",
              "ST": "NanJing",
              "L": "NanJing",
              "O": "k8s",
              "OU": "system"
            }
          ],
          "ca": {
            "expiry": "87600h"
         }
        }
        EOF
        
        
      3. 生成自簽名的根證書,分發證書

        cd /opt/k8s/work/harbor/
        
        cfssl gencert -initca harbor-ca-csr.json | cfssljson -bare harbor-ca
        
        ls harbor-ca*pem
        
        mkdir -p /etc/harbor/cert
        
        mv harbor-ca*pem harbor-ca-config.json  /etc/harbor/cert
        
        
    2. 創建harbor用的證書

      1. 生成證書請求檔案

        cd /opt/k8s/work/harbor/
        
        cat > harbor-server-csr.json <<EOF
        {
          "CN": "harbor",
          "hosts": [
            "127.0.0.1",
            "192.168.0.107"
          ],
          "key": {
            "algo": "rsa",
            "size": 2048
          },
          "names": [
            {
              "C": "CN",
              "ST": "NanJing",
              "L": "NanJing",
              "O": "k8s",
              "OU": "system"
            }
          ]
        }
        EOF
        
        
        • hosts 欄位指定授權使用該證書的當前部署節點 IP
      2. 生成證書

        
        cfssl gencert -ca=/etc/harbor/cert/harbor-ca.pem \
        

-ca-key=/etc/harbor/cert/harbor-ca-key.pem
-config=/etc/harbor/cert/harbor-ca-config.json
-profile=harbor harbor-server-csr.json | cfssljson -bare harbor-server

		ls harbor-server*pem
		
		mv harbor-server*pem /etc/harbor/cert
		
		```
  1. 編輯組態檔

    修改 hostname、data_volume屬性值,去除默認的http方式,追加https的配置

    cd /opt/k8s/work/harbor/harbor
    
    vim harbor.yml
    
    

    修改內容如下

    diff harbor.yml harbor.yml.bak
    5c5
    < hostname: 192.168.0.107
    ---
    > hostname: reg.mydomain.com
    8c8
    < #http:
    ---
    > http:
    10c10
    <   #  port: 80
    ---
    >   port: 80
    13c13
    < https:
    ---
    > # https:
    15c15
    <    port: 443
    ---
    > #   port: 443
    17,18c17,18
    <    certificate: /etc/harbor/cert/harbor-server.pem
    <    private_key: /etc/harbor/cert/harbor-server-key.pem
    ---
    > #   certificate: /your/certificate/path
    > #   private_key: /your/private/key/path
    40c40
    < data_volume: /data/k8s/harbor/data
    ---
    > data_volume: /data
    
    
  2. 生成組態檔(如果沒有啟動過,則跳過該步驟)

    cd /opt/k8s/work/harbor/harbor
    
    ./prepare
    
    

    執行日志

    prepare base dir is set to /opt/k8s/work/harbor/harbor
    Clearing the configuration file: /config/log/rsyslog_docker.conf
    Clearing the configuration file: /config/log/logrotate.conf
    Clearing the configuration file: /config/jobservice/config.yml
    Clearing the configuration file: /config/jobservice/env
    Clearing the configuration file: /config/db/env
    Clearing the configuration file: /config/registryctl/config.yml
    Clearing the configuration file: /config/registryctl/env
    Clearing the configuration file: /config/nginx/nginx.conf
    Clearing the configuration file: /config/registry/config.yml
    Clearing the configuration file: /config/registry/root.crt
    Clearing the configuration file: /config/core/app.conf
    Clearing the configuration file: /config/core/env
    Generated configuration file: /config/log/logrotate.conf
    Generated configuration file: /config/log/rsyslog_docker.conf
    Generated configuration file: /config/nginx/nginx.conf
    Generated configuration file: /config/core/env
    Generated configuration file: /config/core/app.conf
    Generated configuration file: /config/registry/config.yml
    Generated configuration file: /config/registryctl/env
    Generated configuration file: /config/db/env
    Generated configuration file: /config/jobservice/env
    Generated configuration file: /config/jobservice/config.yml
    loaded secret from file: /secret/keys/secretkey
    Generated configuration file: /compose_location/docker-compose.yml
    Clean up the input dir
    
    

    修改生成檔案的訪問權限

    cd /opt/k8s/work/harbor/harbor
    chmod -R 777 common
    
    
  3. 啟動harbor

    如果是首次啟動 執行

    cd /opt/k8s/work/harbor/harbor
    
    mkdir -p /data/k8s/harbor/data
    chmod 777 /var/run/docker.sock /data/k8s/harbor/data
    ./install.sh
    
    

    否則執行

    docker-compose up -d
    
    
  4. 查看啟動狀態

    root@master:/opt/k8s/work/harbor/harbor# docker-compose ps
      Name                     Command                  State                          Ports
    ---------------------------------------------------------------------------------------------------------------
    harbor-core         /harbor/harbor_core              Up (healthy)
    harbor-db           /docker-entrypoint.sh            Up (healthy)   5432/tcp
    harbor-jobservice   /harbor/harbor_jobservice  ...   Up (healthy)
    harbor-log          /bin/sh -c /usr/local/bin/ ...   Up (healthy)   127.0.0.1:1514->10514/tcp
    harbor-portal       nginx -g daemon off;             Up (healthy)   8080/tcp
    nginx               nginx -g daemon off;             Up (healthy)   0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp
    redis               redis-server /etc/redis.conf     Up (healthy)   6379/tcp
    registry            /entrypoint.sh /etc/regist ...   Up (healthy)   5000/tcp
    registryctl         /harbor/start.sh                 Up (healthy)    
            
    
    • nginx 暴露了兩個埠http的80和https的443,使用http訪問80會自動重定向到https
  5. 瀏覽器訪問 https://192.168.0.107,用賬號 admin 和 harbor.yml 組態檔中的默認密碼 Harbor12345 登陸系統,

    • 其中的k8s是在http模式下創建的專案,直接啟動https的可參照上面創建
  6. docker命令拉取和上傳鏡像

    如果之前已經執行過docker login,配置修改后需要重新docker login,需要洗掉 /root/.docker/config.json檔案

    如果在/etc/docker/daemon.json中配置過insecure-registries,需要去掉,并重新啟動docker服務

    1. 執行login

      root@slave:~# docker login -u admin -p Harbor12345 192.168.0.107
      

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.0.107/v2/: x509: certificate signed by unknown authority

	```
	錯誤是說我們用的證書是自簽名的證書,簽發證書機構未經認證
	解決方法是將簽署 harbor-server 證書的 CA 證書拷貝到 /etc/docker/certs.d/192.168.0.107 目錄下(需要在所有要訪問harbor的節點上都執行此操作)
	
	```
	root@slave:~# mkdir -p /etc/docker/certs.d/192.168.0.107
	root@slave:~# scp [email protected]:/etc/harbor/cert/harbor-ca.pem /etc/docker/certs.d/192.168.0.107/ca.crt
	[email protected]'s password:
	harbor-ca.pem                        100% 1306   283.7KB/s   00:00
	root@slave:~# ls /etc/docker/certs.d/192.168.0.107/
	ca.crt
	
	```
	
	重新執行login
	
	```
	root@slave:~# docker login -u admin -p Harbor12345 192.168.0.107
	WARNING! Using --password via the CLI is insecure. Use --password-stdin.
	WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
	Configure a credential helper to remove this warning. See
	https://docs.docker.com/engine/reference/commandline/login/#credentials-store
	
	Login Succeeded
	
	```
  1. 上傳鏡像

    
    root@slave:~# docker images
    REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
    kubernetesui/metrics-scraper   v1.0.3              3327f0dbcb4a        2 weeks ago         40.1MB
    busybox                        latest              6d5fcfe5ff17        7 weeks ago         1.22MB
    coredns/coredns                1.6.6               cc4d8e8c6169        2 months ago        40.8MB
    k8s.gcr.io/pause               3.1                 da86e6ba6ca1        2 years ago         742kB
    192.168.0.107/k8s/pause        3.1                 da86e6ba6ca1        2 years ago         742kB
    kubeimage/pause                3.1                 da86e6ba6ca1        2 years ago         742kB
    nginx                          1.9.1               94ec7e53edfc        4 years ago         133MB
    root@slave:~# docker tag busybox:latest 192.168.0.107/k8s/busybox:latest
    root@slave:~# docker push 192.168.0.107/k8s/busybox:latest
    The push refers to repository [192.168.0.107/k8s/busybox]
    195be5f8be1d: Pushed
    latest: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 527
    
  2. 通過瀏覽器查看剛上傳的鏡像

  3. 從harbor下載鏡像

    root@slave:~# docker rmi 192.168.0.107/k8s/busybox:latest
    Untagged: 192.168.0.107/k8s/busybox:latest
    Untagged: 192.168.0.107/k8s/busybox@sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6
    root@slave:~# docker pull 192.168.0.107/k8s/busybox:latest
    latest: Pulling from k8s/busybox
    Digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6
    Status: Downloaded newer image for 192.168.0.107/k8s/busybox:latest
    
    

kubernetes集群中使用私有的harbor鏡像倉庫

  1. kubelet配置

    kubernetes以pod為管理單元,而不是docker容器,在創建pod時,會先啟動一個名為k8s.gcr.io/pause:3.1的鏡像,

    該鏡像存在于google的鏡像倉庫中,國內不能直接訪問,需要翻墻下載,如果集群新加節點,或者節點上這個鏡像被清理掉,將導致pod不能啟動

    一般做法是搭建私有鏡像倉庫,把這個鏡像push到我們的私有鏡像倉庫,再配置kubelet使用我們私有倉庫中的pause鏡像

    具體做法是修改kubelet服務的啟動檔案:/etc/systemd/system/kubelet.service,在其中追加--pod-infra-container-image屬性,屬性值指向自己私有倉庫中的pause鏡像

    例如

    --pod-infra-container-image=192.168.0.107/k8s/pause:3.1
    
    

    重啟kubelet服務

    systemctl restart kubelet
    
    
  2. kubernetes和harbor進行認證

    kubernetes提供了各種方式來訪問各種鏡像倉庫,具體參考Using a Private Registry,本文采用配置節點的方式來使用私有倉庫

    1. 在集群的任意一個節點上登陸harbor

      root@slave:~# docker login -u admin -p Harbor12345 192.168.0.107
      WARNING! Using --password via the CLI is insecure. Use --password-stdin.
      WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
      Configure a credential helper to remove this warning. See
      https://docs.docker.com/engine/reference/commandline/login/#credentials-store
      
      Login Succeeded
      
      

      成功后會生成認證檔案/root/.docker/config.json

      
      root@slave:~# ls /root/.docker/
      config.json
      root@slave:~# cat /root/.docker/config.json
      {
              "auths": {
                      "192.168.0.107": {
                              "auth": "YWRtaW46SGFyYm9yMTIzNDU="
                      }
              },
              "HttpHeaders": {
                      "User-Agent": "Docker-Client/18.09.6 (linux)"
              }
      }
      
      
    2. 配置kubelet使用此認證檔案

      默認情況下,kubelet會從如下路徑中查找私有倉庫的認證檔案

      • {--root-dir:-/var/lib/kubelet}/config.json
      • {cwd of kubelet}/config.json
      • ${HOME}/.docker/config.json #須在環境變數檔案中為 kubelet 顯式設定 HOME=/root
      • /.docker/config.json

      此處我們將私有倉庫的認證檔案copy到kubelet的root目錄下,此目錄在kubelet.service中進行設定
      例如

      --root-dir=/data/k8s/k8s/kubelet
      
      
    3. copy私有倉庫的認證檔案到kubelet的root目錄(所有運行kubelet,需要訪問harbor的節點都需要),本環境中有兩個節點

      cp /root/.docker/config.json /data/k8s/k8s/kubelet/config.json
      
      scp /root/.docker/config.json [email protected]:/data/k8s/k8s/kubelet/config.json
      
      
  3. 驗證

    創建一個pod,image 指定私有倉庫里面的鏡像

    cd /opt/k8s/yml
    
    cat > private-busybox.yml << EOF
    apiVersion: v1
    kind: Pod
    metadata:
      name: private-busybox
    spec:
      containers:
      - name: private-busybox
        image: 192.168.0.107/k8s/busybox:latest
        command:
          - sleep
          - "3600"
    EOF
    
    

    創建pod

    root@master:/opt/k8s/yml# kubectl create -f private-busybox.yml 
    
    

    查看運行狀態

    root@master:/opt/k8s/yml# kubectl get pod | grep private-busybox
    private-busybox                     1/1     Running   0          108s
    
    

    通過docker命令,查看啟動pod對應的容器的鏡像名稱

    root@master:/opt/k8s/yml# docker ps | grep -e IMAGE -e private-busybox
    CONTAINER ID        IMAGE                                                    COMMAND                  CREATED              STATUS                  PORTS                                                           NAMES
    c2b43d9d9b3e        192.168.0.107/k8s/busybox                                "sleep 3600"             About a minute ago   Up About a minute                                                                       k8s_private-busybox_private-busybox_default_98a4d4bd-fd46-4d9d-8ef9-95845ce7e53d_0
    a4a84461d5fe        192.168.0.107/k8s/pause:3.1                              "/pause"                 About a minute ago   Up About a minute                                                                       k8s_POD_private-busybox_default_98a4d4bd-fd46-4d9d-8ef9-95845ce7e53d_0                   1/1     Running   0          5s
    
    

    可以看到啟動的容器對應的鏡像都是我們自己的私有倉庫中的鏡像

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41200.html

標籤:其他

上一篇:2019年IT事故盤點【IT必讀】

下一篇:Docker 網路原理

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more