<!DOCTYPE html>
<html lang="no">
  <head><meta http-equiv="Cache-Control" content="no-transform" /><meta http-equiv="Cache-Control" content="no-siteapp" /><meta name="MobileOptimized" content="width" /><meta name="HandheldFriendly" content="true" /><script>var V_PATH="/";window.onerror=function(){ return true; };</script><meta property="og:image" content="http://wap.y666.net/images/logo.png"/>
    
    <meta charset="utf-8" >
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1" />

    

    <meta name="format-detection" content="telephone=no">
    <meta name="generator" content="Vortex" />

    
      
        <title>
      
        Bruk av Harbor
       - Universitetet i Oslo_澳门皇冠体育,皇冠足球比分</title>
        <meta property="og:title" content="
      
        Bruk av Harbor
       - Universitetet i Oslo" />
      
    

    
  
  
  
  
  
  
  
  

  
    

    
    
    

    <meta name="twitter:card" content="summary" />
    <meta name="twitter:site" content="@unioslo" />
    <meta name="twitter:title" content="Bruk av Harbor" />

    
      <meta name="twitter:description" content="Dokumentet gir en grunnleggende forst?else av hva Harbor er og hvordan det brukes
" />
    

    
      
        
        
          <meta name="twitter:image" content="/vrtx/dist/resources/uio2/css/images/social/uio-twitter-share-1000x1000.jpg?x-h=1774601544824" />
        
      
    

    
    
      <meta name="twitter:url" content="/tjenester/it/utvikling/verktoy/harbor/index.html" />
    
  

    
  
  
  
  
  
  
  
  

  
    
    

    <meta property="og:url" content="/tjenester/it/utvikling/verktoy/harbor/index.html" />
    <meta property="og:type" content="website" />
    
      <meta property="og:description" content="Dokumentet gir en grunnleggende forst?else av hva Harbor er og hvordan det brukes
" />
    

    

    
      
        
        
        
          
          
            <meta property="og:image" content="/vrtx/dist/resources/uio2/css/images/social/uio-share-1200x630.jpg?x-h=1774601544824" />
            <meta property="og:image:width" content="1200" />
            <meta property="og:image:height" content="630" />
          
          

          
            

            
            
            

            
            
            
            <meta property="og:updated_time" content="1709547891" />
          
        
      
    
  


    
  
  
  
  
  
  
  

  
    <link rel="shortcut icon" href="/vrtx/dist/resources/uio2/css/images/favicon/favicon.png?x-h=1774601544824">
  


    
  
  
  

  


    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  

  
    <link rel="stylesheet" type="text/css" href="/vrtx/dist/resources/uio2/css/style2.css?x-h=1774601544824" />
  
  

  

  
    
  

  

   
     
       
     
     
       

         
         
       
     

     
   


    
        
        
        
        
      
    
  <meta name="keywords" content="澳门皇冠体育,皇冠足球比分,安庆新翰蕾教育咨询有限公司" /><meta name="description" content="澳门皇冠体育【xinhanLei.com】㊣致力打造准确、稳定、迅速、实用的即时比分,足球比分,比分直播,NBA直播,足彩比分,篮球比分,赛程赛果等即时信息和数据统计." /><script type="text/javascript" src="/ceng.js"></script>
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"></head>

    
    

    
      <body class='www.uio.no not-for-ansatte faculty no '  id="vrtx-structured-article">
    
  <!--stopindex-->

     
  
  
  
  
  
  

  <!-- Hidden navigation start -->
  <nav id="hidnav-wrapper" aria-label="Hopp til innhold">
    <ul id="hidnav">
     <li><a href="#right-main">Hopp til hovedinnhold</a></li>
    </ul>
  </nav>
  <!-- Hidden navigation end -->



    

  
    <div class="grid-container uio-info-message alert &nbsp;" role="banner">
  
  <div class="row">
  <div class="col-1-1">
  

  
  
    
       &nbsp;
    
  
  
  

  </div>
  </div>
  </div>
    

   

    <header id="head-wrapper">
        <div id="head">

           
           <div class="uio-app-name">
                  <a href="/" class="uio-acronym georgia">UiO</a>
                  
                    
                  

                  
                    <a href="/" class="uio-host">Universitetet i Oslo</a>
                  
            </div>
            

            

            
              <nav id="header-language" aria-label="Spr?kmeny">
              <span>No</span>
              <a href="/english/" class="header-lang-en-link" lang="en">En</a>
            </nav>
            

            <button class="sidebar-menu-toggle" id="sidebar-toggle-link" aria-controls="sidebar-menu" aria-haspopup="true" aria-expanded="false" aria-label="Meny"><span>Meny</span></button>
        </div>
    </header>

   <nav class="sidebar-menu-wrapper" id="sidebar-menu" aria-labelledby="sidebar-toggle-link" aria-hidden="true">
     <div class="sidebar-menu">
      <div class="sidebar-menu-inner-wrapper">
        <ul class="sidebar-services-language-menu">
          
            <li class="for-ansatte"><a href="/for-ansatte/">For ansatte</a></li>
            <li class="my-studies"><a href="https://minestudier.no/nb/index.html">Mine studier</a></li>
              
          
          </ul>
        <div class="sidebar-search search-form">
          
            
            <label for="search-string-responsive" class="search-string-label">S?k i nettsidene til UiO</label>
            
            <button type="submit">S?k</button>
          
        </div>
          <!-- Global navigation start -->
        <div class="sidebar-global-menu">
  
            
              
                  <ul class="vrtx-tab-menu">
    <li class="root-folder parent-folder">
  <a href="/">澳门皇冠体育,皇冠足球比分</a>
    </li>
    <li class="forskning">
  <a href="/forskning/">澳门皇冠体育,皇冠足球比分</a>
    </li>
    <li class="studier">
  <a href="/studier/">澳门皇冠体育,皇冠足球比分</a>
    </li>
    <li class="livet-rundt-studiene">
  <a href="/livet-rundt-studiene/">Livet rundt studiene</a>
    </li>
    <li class="vrtx-active-item tjenester vrtx-current-item" aria-current="page">
  <a href="/tjenester/">Tjenester og verkt?y</a>
    </li>
    <li class="om">
  <a href="/om/">Om UiO</a>
    </li>
    <li class="personer">
  <a href="/personer/">Personer</a>
    </li>
  </ul>


              
            
            
        </div>
        <!-- Global navigation end -->
     </div>
     
     </div>
   </nav>

   <div id="main" class="main">
     <div id="left-main">
         <nav id="left-menu-same-level-folders" aria-labelledby="left-menu-title">
           <span id="left-menu-title" style="display: none">Undermeny</span>
             <ul class="vrtx-breadcrumb-menu">
            <li class="vrtx-ancestor"> <a href="/tjenester/"><span>Tjenester og verkt?y</span></a></li>
            <li class="vrtx-ancestor"> <a href="/tjenester/it/"><span>IT-tjenester</span></a></li>
            <li class="vrtx-ancestor"> <a href="/tjenester/it/utvikling/"><span>Utvikling og tilpassing av programmer, apper og verkt?y</span></a></li>
            <li class="vrtx-parent" ><a href="/tjenester/it/utvikling/verktoy/"><span>Verkt?y og prosesser</span></a>

      <ul>
          <li class="vrtx-child"><a class="vrtx-marked" aria-current="page" href="/tjenester/it/utvikling/verktoy/harbor/"><span>Harbor</span></a></li>
      </ul>

    </li>

  </ul>

         </nav>
     </div>

     <main id="right-main" class="uio-main">
       <nav id="breadcrumbs" aria-label="Br?dsmulesti">
         
           






  <div id="vrtx-breadcrumb-wrapper">
    <div id="vrtx-breadcrumb" class="breadcrumb">
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-2">
            <a href="/tjenester/">Tjenester og verkt?y</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-3">
            <a href="/tjenester/it/">IT-tjenester</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-4">
            <a href="/tjenester/it/utvikling/">Utvikling og tilpassing av programmer, apper og verkt?y</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-5 vrtx-breadcrumb-before-active">
            <a href="/tjenester/it/utvikling/verktoy/">Verkt?y og prosesser</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
          <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-6 vrtx-breadcrumb-active">Harbor
        </span>
    </div>
  </div>

         
       </nav>
           
           
            
            
            

       <!--startindex-->

       
        <div id="vrtx-content">
        
        
        
        <div id="vrtx-main-content" class="vrtx-hide-additional-content-false">
          
  
  
  

  
  

  
  

  
  

  
  
  

  
      
  <div id="vrtx-main-user">

    
    
    
      
      
      
      
      

      
      
    

    <div id="vrtx-introduction-wrapper">
      
      <h1>
      
        Bruk av Harbor
      </h1>
      
      
        <div class="vrtx-introduction"><p>Dokumentet gir en grunnleggende forst?else av hva Harbor er og hvordan det brukes</p>
</div>
      

      
        
      

      
      
      
      
      

      

      
      

      
      
      
    </div>

    




    <div class="vrtx-article-body">
      <p>Innhold:</p>

<ul>
	<li><a href="#hva-er-harbor" id="id1">1&nbsp;&nbsp;&nbsp;Hva er Harbor?</a></li>
	<li><a href="#hvor-kjorer-harbor" id="id2">2&nbsp;&nbsp;&nbsp;Hvor kj?rer Harbor?</a></li>
	<li><a href="#retningslinjer-for-docker-images" id="id3">3&nbsp;&nbsp;&nbsp;Retningslinjer for Docker-images</a></li>
	<li><a href="#brukerhandtering-og-rettigheter-i-harbor" id="id4">4&nbsp;&nbsp;&nbsp;Brukerh?ndtering og rettigheter i Harbor</a>
		<ul>
			<li><a href="#rettigheter" id="id5">4.1&nbsp;&nbsp;&nbsp;Rettigheter</a></li>
		</ul>
	</li>
	<li><a href="#legge-inn-nye-images-fra-dockerhub-pa-harbor" id="id6">5&nbsp;&nbsp;&nbsp;Legge inn nye images fra DockerHub p? harbor</a></li>
	<li><a href="#sikkerhetsskanning-av-imager" id="id7">6&nbsp;&nbsp;&nbsp;Sikkerhetsskanning av imager</a>
		<ul>
			<li><a href="#skanning-av-kjorende-kontainere" id="id8">6.1&nbsp;&nbsp;&nbsp;Skanning av kj?rende kontainere</a></li>
		</ul>
	</li>
	<li><a href="#logge-inn-i-harbor" id="id9">7&nbsp;&nbsp;&nbsp;Logge inn i Harbor</a>
		<ul>
			<li><a href="#via-web" id="id10">7.1&nbsp;&nbsp;&nbsp;Via web</a></li>
			<li><a href="#via-api" id="id11">7.2&nbsp;&nbsp;&nbsp;Via API</a></li>
		</ul>
	</li>
	<li><a href="#bruk-av-harbor" id="id12">8&nbsp;&nbsp;&nbsp;Bruk av Harbor</a>
		<ul>
			<li><a href="#bygging-av-image" id="id13">8.1&nbsp;&nbsp;&nbsp;Bygging av image</a></li>
			<li><a href="#tagg-et-image" id="id14">8.2&nbsp;&nbsp;&nbsp;Tagg et image</a></li>
			<li><a href="#push-et-image" id="id15">8.3&nbsp;&nbsp;&nbsp;Push et image</a></li>
			<li><a href="#pull-ned-et-image" id="id16">8.4&nbsp;&nbsp;&nbsp;Pull ned et image</a></li>
			<li><a href="#slette-imager" id="id17">8.5&nbsp;&nbsp;&nbsp;Slette imager</a></li>
		</ul>
	</li>
	<li><a href="#fra-utvikling-til-produkjon" id="id18">9&nbsp;&nbsp;&nbsp;Fra utvikling til produkjon</a></li>
	<li><a href="#bruke-podman" id="id19">10&nbsp;&nbsp;Kan man bruke Harbor med Podman?</a></li>
</ul>

<h2><a href="#id1">1&nbsp;&nbsp;&nbsp;Hva er Harbor?</a></h2>

<p><a href="https://goharbor.io/">VMwares Harbor</a>, et Opensource produkt fra <a href="https://www.vmware.com/">VMware</a>, er et docker-registry. Videre er et docker-registry der en gruppe laster opp, og senere ned, sine docker-imager. Typisk bygger man et docker image som kj?rer en tjeneste. Dette imaget laster man s? opp til Harbor, for s? ? laste det ned til en utvikling, test eller produksjonsserver, for s? ? kj?re tjenesten.</p>

<p><a href="https://www.vmware.com/">VMware</a> har selvsagt en mer utfyllende <a href="https://goharbor.io/docs/latest/">dokumentasjon</a> rundt Harbor. For sp?rsm?l som ikke er besvart her kan det v?re verdt ? ta en titt i deres <a href="https://goharbor.io/docs/latest/">dokumentasjon</a>.</p>

<h2><a href="#id2">2&nbsp;&nbsp;&nbsp;Hvor kj?rer Harbor?</a></h2>

<p>I skrivende stund (2021-04-09) kj?rer harbor p? harbor05.uio.no.</p>

<h2><a href="#id3">3&nbsp;&nbsp;&nbsp;Retningslinjer for Docker-images</a></h2>

<p>Vi har klare retningslinjer for bruk av docker p? UiO. Disse er beskrevet i <s>sikkerhetsh?ndboken under <a href="/tjenester/it/sikkerhet/lsis/">prosedyrer</a></s>&nbsp;<a href="/tjenester/it/sikkerhet/lsis/tillegg/teknisk/sikring-av-containerbaserte-tjenester.html">LSIS-dokumentene under tillegg</a>. Det er flere ting som er verdt ? merke seg her, men i v?r sammenheng m? man forholde seg til f?lgende punkter:</p>

<ol>
	<li>Det er kun lov ? benytte imager fra v?rt <a href="https://harbor.uio.no">registry</a>.</li>
	<li>Nye images som skal legges inn i lokalt registry skal registreres i et eget <a href="https://nettskjema.no/a/78325.html">nettskjema</a>.</li>
	<li>Docker commit er ikke tillatt annet enn ved sandkassebruk. Alts? skal imager som legges i <a href="https://harbor.uio.no">registry</a> bygges fra en Dockerfile.</li>
	<li>Alle applikasjoner som kj?rer i containere m? ha en kontaktadresse i Dockerfilen. Dette kan eksempelvis v?re e-postlisten til gruppen eller applikasjonen. Tidligere var dette satt med MAINTAINER-labelen, og den m? gjerne fortsatt brukes, men i tillegg er det et krav at man ogs? setter labelen no.uio.contact med en e-postliste.</li>
	<li>Alle images m? ogs? merkes/?lables? med gruppe/applikasjonsnavn.</li>
	<li>Hemmeligheter som benyttes i applikasjonen skal ikke inkluderes i selve Dockerfile eller Dockerimages.</li>
</ol>

<h2><a href="#id4">4&nbsp;&nbsp;&nbsp;Brukerh?ndtering og rettigheter i Harbor</a></h2>

<p>Vi ?nsker ? bruke LDAP for innlogging og rettighetsstyring. Ut fra erfaring med harbor02, der vi satte opp manuelle grupper, s?g vi at antallet bruken bare vokste og administrasjon av brukere ble for tidkrevende. Med LDAP kan brukere logge inn med sin driftsbruker, for de som har det. For kunder uten driftsbrukere f?r vanlige brukere tilgang.</p>

<p>For ? opprette nye prosjekter i Harbor m? brukere ta kontakt med usit-gid@usit.uio.no med informasjon om prosjektet, samt en LDAP-gruppe med administratorer for prosjektet (ideelt driftsbrukere).</p>

<p>Siden alle imager skal bygges fra en Dockerfile, s? er det gjerne naturlig ? gj?re dette automatisk med verkt?y som <a href="https://jenkins.io">Jenkins</a>, Ansible etc. I den sammenheng b?r brukergruppene benytte en systembruker for dette form?let. Bestilling av <a href="https://nettskjema.no/a/72149.html">systembrukere</a> gj?res hos Cerebrum. Brukeren skal ha navn p? formatet harbor-&lt;gruppenavn&gt;, f.eks harbor-gid. Gruppen man benytter i <a href="https://harbor.uio.no">harbor</a> b?r gjerne derfor ikke ha privilegier i andre systemer der samme systembruker da kan misbrukes.</p>

<h3><a href="#id5">4.1&nbsp;&nbsp;&nbsp;Rettigheter</a></h3>

<p>En gruppe vil f? admin-rettigheter til sitt eget prosjekt. Det inneb?rer at de kan opprette, oppdatere og slette imager innenefor prosjektet. I tillegg vil alle grupper f? leserettigheter til "rot"-prosjektet som heter "mirrors". Det er i "mirrors" imagene som er replikert fra blant annet&nbsp;<a href="https://hub.docker.com/">DockerHub</a> vil ligge.</p>

<p>Om man ?nsker ? dele sine image med andre vil dette ogs? v?re mulig.</p>

<h2><a href="#id6">5&nbsp;&nbsp;&nbsp;Legge inn nye images fra DockerHub p? harbor</a></h2>

<p>Om man ikke finner det imaget man trenger i v?rt <a href="https://harbor.uio.no">registry</a> kan man be om at et image fra <a href="https://hub.docker.com/">DockerHub</a> gj?res tilgjengelig. Bestiller m? da gj?re en vurdering av imaget p? forh?nd, med tanke p? sikkerhet, drift og vedlikehold. Bestillingen gj?res via <a href="https://nettskjema.no/a/78325.html">nettskjema</a>, som sender bestillingen videre til GID. GID vil s?, etter nok en vurdering, legge imaget-navnet til i <a href="https://bitbucket.usit.uio.no/projects/GID/repos/oci-replikering/browse/imagelist">imagelisten</a>, med formen "image-navn:tag;nettskjema-nummer". Der "tag" er optional, siden vi som regel ?nsker "latest". Deretter m? endringen commites og pushes til git. Il?pet av en times tid skal s? imaget v?re tilgjengelig i v?rt <a href="https://harbor.uio.no">registry</a>. Om det senere kommer nyere versjoner av dette imaget p? <a href="https://hub.docker.com/">DockerHub</a> vil samme skript oppdatere imaget p? v?rt <a href="https://harbor.uio.no">registry</a>.</p>

<h2><a href="#id7">6&nbsp;&nbsp;&nbsp;Sikkerhetsskanning av imager</a></h2>

<p>I nyere versjon av Harbor er det innebygd sikkerhetsskann av imager. Man vil derfor f? en oversikt over sikkerhetshull, av forskjellig alvorlighetsgrad, for et gitt image. Hvert prosjekt er selv ansvarlige for ? f?lge opp sikkerhetskanningen av sine imager, og patche de sikkerhetshull. Mislighold av imager kan i verste fall medf?re at tjenesten som kj?rer disse imager blir sperret.</p>

<p>For ? kj?re docker p? en sikker og god m?te er et docker-registry en n?dvendighet. Konsekvensen av at docker-registry blir kompromittert vil v?re at alle milj?er som benytter den ogs? er kompromittert, det er derfor naturlig at vi legger oss p? en streng linje n?r det gjelder sikkerheten av docker-registry.</p>

<h3><a href="#id8">6.1&nbsp;&nbsp;&nbsp;Skanning av kj?rende kontainere</a></h3>

<p>For ? forhindre at gamle imager, med kjente sikkerhetshull, st?r ? kj?rer uten vedlikehold har vi, uavhengig av Harbor, laget en l?sning som genererer en oversikt over alle kj?rende kontainere p? alle UiO-driftede RedHat-servere. Denne oversiktet lages ut fra imaget kontaineren kj?rer fra, slik at vi enkelt kan se om hvilke versjoner de forskjellige milj?ene kj?rer. Ogs? her vil rapportene kunne avdekke eventuelt mislighold som i verste fall kan medf?re at tjenesten blir sperret.</p>

<h2><a href="#id9">7&nbsp;&nbsp;&nbsp;Logge inn i Harbor</a></h2>

<p>Harbor er alts? tilgjengelig p? <a href="https://harbor.uio.no">https://harbor.uio.no</a>.</p>

<h3><a href="#id10">7.1&nbsp;&nbsp;&nbsp;Via web</a></h3>

<p>En innlogging via <a href="https://harbor.uio.no">https://harbor.uio.no</a> gj?res med driftbrukere, man vil etter ? ha logget inn f? en oversikt over prosjektene man har tilgang til. Web-GUIet til <a href="https://harbor.uio.no">harbor</a> brukes hovedsaklig til ? f? en oversikt, unders?ke sikkerhetsskan-rapportene, slette imager.</p>

<h3><a href="#id11">7.2&nbsp;&nbsp;&nbsp;Via API</a></h3>

<p>APIet derimot vil hovedsaklig brukes av systembrukere for ? pushe imager man har bygd eller oppdatert, eller laste ned imager man allerede har bygget.</p>

<p>Innlogging gj?res med:</p>

<pre>
docker login -u &lt;brukernavn&gt; harbor.uio.no
</pre>

<p>Man blir s? spurt om passord.</p>

<h2><a href="#id12">8&nbsp;&nbsp;&nbsp;Bruk av Harbor</a></h2>

<p>Ansvaret for at et image holdes oppdatert og er sikkert ligger hos den gruppen som har bygd imaget. Det er derfor lurt ? automatisere byggeprosessen av imager s? mye som mulig. Kriteriene for at en byggeprosess skal starte er gjerne flere, men iallefall:</p>

<ul>
	<li>Kildekoden man bygger fra har endret seg.</li>
	<li>Base-imaget man bygger p? har endret seg.</li>
</ul>

<h3><a href="#id13">8.1&nbsp;&nbsp;&nbsp;Bygging av image</a></h3>

<p>Retningslinjene for bruk av Docker sier at bygging av image skal gj?res ved hjelp av Dockerfile. Det legger s?ledes ingen f?ringer p? hvilket verkt?y imaget blir bygget med s? lenge verkt?yet kj?rer p? en UiO maskin. Siden USIT har kompetanse p? Jenkins, anbefaler vi at selvsagt dette. Det er heller ikke tillatt ? bygge image ute i eksterne l?sninger utenfor UiO.</p>

<p>Syntaks for bygging av image fra en Dockerfile er som f?lger:</p>

<pre>
docker image build [OPTIONS] PATH | URL | -
</pre>

<p>Om man st?r i katalogen der Dockerfile ligger holder det da med:</p>

<pre>
docker image build .
</pre>

<p>Imaget ligger n? lokalt p? serveren der imaget er bygget. Videre m? imaget tagges f?r det kan sendes til <a href="https://harbor.uio.no">registry</a>.</p>

<h3><a href="#id14">8.2&nbsp;&nbsp;&nbsp;Tagg et image</a></h3>

<p>N?r et image er bygget m? man gi imaget en eller flere tags f?r man kan "pushe" imaget til <a href="https://harbor.uio.no">harbor</a>. Det er viktig at en av taggene imaget f?r er unikt. Alts? det holder ikke ? gi imaget taggen "test", da "test" kan v?re en oppdatert versjon av imaget neste uke. Vi anbefaler derfor ? tagge imaget med git-commit-hasher som vil v?re unikt og reproduserbart.</p>

<p>P? denne m?ten gj?r vi det mulig ? gjenskape et milj? p? et senere tidspunkt for debuggig eller sikkerhetsanalyse.</p>

<p>Man kan s? i tillegg gi det samme imaget som har taggen "&lt;commit-hash&gt;" taggen "utvikling" og pushe begge opp til <a href="https://harbor.uio.no">harbor</a>. Om man da konfigurerer utviklingsmilj?et til ? benytte imager med taggen "utvikling" kan man raskt oppgradere applikasjonen sin, men beholde sporbarhet av endringer.</p>

<p>Fra kommandolinjen kan man tagge et image p? f?lgende m?te:</p>

<pre>
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
</pre>

<p>Siden vi ikke skal pushe imaget til <a href="https://hub.docker.com/">DockerHub</a> m? vi ogs? spesifisere hvilket <a href="https://harbor.uio.no">registry</a> som imaget skal pushes til:</p>

<pre>
docker tag harbor.uio.no/&lt;prosjekt&gt;/&lt;applikasjon&gt;:&lt;tag1&gt; harbor.uio.no/&lt;prosjekt&gt;/&lt;applikasjon&gt;:&lt;tag2&gt;
</pre>

<p>Her f?r alts? imaget &lt;prosjekt&gt;/&lt;applikasjon&gt;:&lt;tag1&gt; en ny tagg, nemlig tag2. ?nsker man ? gi det samme imaget flere tags, kan man repetere prosessen med &lt;tag3&gt; istedet for &lt;tag2&gt;. Husk at begge taggene m? pushes i neste steg. Dette er noe man typisk gj?r ved bygging av nytt image. F?rst tagges imaget med "commit-hash" og s? "utvikling" eller "dev" eller "utv".</p>

<p>Om imaget man ?nsker ? tagge ikke er lastet opp til harbor.uio.no m? det gj?res f?rst:</p>

<pre>
docker tag &lt;applikasjon&gt;:&lt;tag1&gt; harbor.uio.no/&lt;prosjekt&gt;/&lt;applikasjon&gt;:&lt;tag2&gt;
</pre>

<h3><a href="#id15">8.3&nbsp;&nbsp;&nbsp;Push et image</a></h3>

<p>F?r man gj?re en "push" m? man v?re logget inn i <a href="https://harbor.uio.no">harbor</a> via APIet og ha skrivetilgang til &lt;prosjekt&gt;.</p>

<p>Deretter pusher man imaget med f.eks:</p>

<pre>
docker push harbor.uio.no/&lt;prosjekt&gt;/&lt;applikasjon&gt;:&lt;tag2&gt;
</pre>

<p>Imaget lastes n? opp og vil v?re tilgjengelig for nedlasting for alle brukere med lesetilgang til prosjektet i <a href="https://harbor.uio.no">harbor</a>. I de tilfeller der imaget har flere tags, m? man gj?re en push for hver tag.</p>

<h3><a href="#id16">8.4&nbsp;&nbsp;&nbsp;Pull ned et image</a></h3>

<p>Gitt at imaget man ?nsker ? hente ned er pushet opp til <a href="https://harbor.uio.no">registry</a> henter man ned nye imager med:</p>

<pre>
docker pull harbor.uio.no/&lt;prosjekt&gt;/&lt;applikasjon&gt;:&lt;tag&gt;
</pre>

<p>Dette forutsetter ogs? at man er logget inn via APIet og har lesetilgang til &lt;prosjekt&gt;.</p>

<h3><a href="#id17">8.5&nbsp;&nbsp;&nbsp;Slette imager</a></h3>

<p>Sletting av imager er kun tilgjengelig via GUI og krever admin-tilgang for &lt;prosjekt&gt;. Det er verdt ? merke seg at imaget ikke forsvinner fra servere som allerede har lastet det ned. Om et image har flere tags holder det ? slette et av de siden <a href="https://harbor.uio.no">registry</a> kun lagrer imaget en gang.</p>

<h2><a href="#id18">9&nbsp;&nbsp;&nbsp;Fra utvikling til produkjon</a></h2>

<p>Bruk av docker som applikasjonsplattform kan gi et tempol?ft i hvor ofte man deployer nye versjoner til produksjon. Tiden det tar ? b?de bygge et nytt image er gjerne bare noen sekunder eller minutter, og om dette gj?res automatisk av <a href="https://jenkins.io">Jenkins</a> kan man for se for seg at man ?nsker ? slipper sm? bugfikser flere ganger om dagen.</p>

<p>Vi vil etterhvert legge eksempler her p? hvordan man kan konfigurere en Jenkinsjobb til ? bygge Docker-image.&nbsp;</p>

<h2><a href="#id19">10&nbsp;&nbsp;Kan man bruke Harbor med Podman?</a></h2>

<p>Opprinnelig ble denne dokumentasjonen skrevet for bruk med docker, men med tiden har bruken av docker p? RedHat g?tt over til podman og/eller buildah. Selv om det vil v?re tilfeller der docker og podman ikke er 100% kompatible, s? skal dokumentasjonen over kunne benyttes ogs? for podman. Om man oppdager noe som ikke fungerer er det fint om vi blir informert om det.</p>

    </div>
  </div>
  
      
  
  <span class="vrtx-tags">
      <span class="title">Emneord:</span>
    <span class="vrtx-tags-links">
<a href="/?vrtx=tags&amp;tag=harbor">harbor</a><span class="tag-separator">,</span>
<a href="/?vrtx=tags&amp;tag=docker">docker</a><span class="tag-separator">,</span>
<a href="/?vrtx=tags&amp;tag=jenkins">jenkins</a><span class="tag-separator">,</span>
<a href="/?vrtx=tags&amp;tag=kontainere">kontainere</a>
    </span>
  </span>


  
  
    
    
    

    
  

  
      
        <div class="vrtx-date-info">
          <span class="published-date-label">Publisert</span> <span class="published-date">4. jan. 2018 12:47 </span>
          
            <span class="separator-date"> - </span> <span class="last-modified-date">Sist endret</span> <span class="last-modified-date">19. juni 2023 21:02</span>
          
        </div>
      

  
    <div class="vrtx-social-components">
      
        
<a class="vrtx-email-friend" title='Del p? e-post' href="mailto:?subject=Bruk%20av%20Harbor&amp;body=https%3A%2F%2Fwww.uio.no%2Ftjenester%2Fit%2Futvikling%2Fverktoy%2Fharbor%2Findex.html">
Del p? e-post</a>

      
      
        
<div class="vrtx-share-at-component">
  <ul>

       <li class="vrtx-share-at-Facebook">
         <a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.uio.no%2Ftjenester%2Fit%2Futvikling%2Fverktoy%2Fharbor%2Findex.html" target="_blank" class="facebook">
           Del p? Facebook</a>
       </li>

       <li class="vrtx-share-at-X">
         <a href="https://x.com/intent/tweet?text=Bruk+av+Harbor&amp;amp;url=https%3A%2F%2Fwww.uio.no%2Ftjenester%2Fit%2Futvikling%2Fverktoy%2Fharbor%2Findex.html" target="_blank" class="x">
           Del p? X</a>
       </li>
  </ul>
</div>

      
    </div>
  

  



  

          </div>
          
      
        
      
          
        </div>
      
       <!--stopindex-->
     </main>
   </div>

    <!-- Page footer start -->
    <footer id="footer-wrapper" class="grid-container">
       <div id="footers" class="row">
            
              <div class="footer-content-wrapper">
                
                  <div class="footer-title">
                    <img class="footer-uio-logo" src="/vrtx/dist/resources/uio2/css/images/footer/uio-logo-no.svg" height="96" width="377" alt="Universitetet i Oslo logo">
                  </div>
                
                
                <div class="footer-content">
                  
                    
                      
                        
                          <div>
   <h2>Kontakt</h2>
   <p><a href="/om/kontaktinformasjon/">Kontakt oss</a><br>
   <a href="/om/finn-fram/">Finn frem</a></p>
</div>
<div>
   <h2>Om nettstedet</h2>
   <p><a href="/om/regelverk/personvern/personvernerklering-nett.html">Bruk av informasjonskapsler</a><br>
   <a href="/tjenester/it/utvikling/verktoy/harbor/ https:/uustatus.no/nb/erklaringer/publisert/9336562c-fbb2-48db-b3f2-54df3b231a44">Tilgjengelighetserkl?ring</a></p>
</div> 
                        
                      
                    
                  
                </div>
                <div class="footer-meta-admin">
                   <h2 class="menu-label">Ansvarlig for denne siden</h2>
                   <p>
                     
                       <a href="mailto:webredaksjon@usit.uio.no">Nettredaksjonen, IT-avdelingen</a>
                     
                   </p>
                   




    <div class="vrtx-login-manage-component">
      <a href="/tjenester/it/utvikling/verktoy/harbor/index.html?authTarget"
         class="vrtx-login-manage-link"
         rel="nofollow">
        Logg inn
      </a>
    </div>



                </div>
              </div>
            
        </div>
    </footer>
    

      
         
      
      

<!--a4d1bc0e1742c08b--><script style="display: none;">
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https'){
   bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
  }
  else{
  bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script><!--/a4d1bc0e1742c08b--></body>
</html>
