CINXE.COM
What Is Docker? | Oracle Suomi
<!DOCTYPE html> <html lang="en-FI" class="no-js"><!-- start : Framework/Redwood2 --> <!-- start : ocom/common/global/components/framework/head --> <head> <!-- start : ocom/common/global/components/head --> <title>What Is Docker? | Oracle Suomi</title> <meta name="Title" content="What Is Docker? | Oracle Suomi"> <meta name="Description" content="What is Docker and how is this Container Registry used in the cloud. Learn why Docker is the leading container registry platform for cloud native applications, leveraging agile operations and integrated container security. "> <meta name="Keywords" content="docker, docker registry, container registry, docker image, cloud native, cloud computing, containers, PaaS, VM, container cloud service, microservices"> <meta name="siteid" content="fi"> <meta name="countryid" content="FI"> <meta name="robots" content="index, follow"> <meta name="country" content="Finland"> <meta name="region" content="europe"> <meta name="Language" content="en"> <meta name="Updated Date" content="2021-11-09T02:53:19Z"> <meta name="page_type" content="SEO-BSA"> <script type="text/javascript"> var pageData = pageData || {}; //page info pageData.pageInfo = pageData.pageInfo || {}; pageData.pageInfo.language = "en"; pageData.pageInfo.country = "Finland"; pageData.pageInfo.region = "europe"; pageData.pageInfo.pageTitle = "What Is Docker? | Oracle"; pageData.pageInfo.description = "What is Docker and how is this Container Registry used in the cloud. Learn why Docker is the leading container registry platform for cloud native applications, leveraging agile operations and integrated container security."; pageData.pageInfo.keywords = "docker, docker registry, container registry, docker image, cloud native, cloud computing, containers, PaaS, VM, container cloud service, microservices"; pageData.pageInfo.siteId = "fi"; pageData.pageInfo.countryId = "FI"; pageData.pageInfo.updatedDate = "2021-11-09T02:53:19Z"; </script> <!-- start : ocom/common/global/components/seo-taxonomy-meta-data--> <script type="text/javascript"> var pageData = pageData || {}; //taxonmy pageData.taxonomy = pageData.taxonomy || {}; pageData.taxonomy.productServices = []; pageData.taxonomy.industry = []; pageData.taxonomy.region = []; pageData.taxonomy.contentType = ["WM178751"]; pageData.taxonomy.buyersJourney = []; pageData.taxonomy.revenue = []; pageData.taxonomy.title = []; pageData.taxonomy.audience = []; pageData.taxonomy.persona = []; </script> <!-- end : ocom/common/global/components/seo-taxonomy-meta-data--> <!-- start : ocom/common/global/components/social-media-meta-tags --><!-- F13v0 --> <meta property="og:title" content="What Is Docker?"/> <meta property="og:description" content="What is Docker and how is this Container Registry used in the cloud. Learn why Docker is the leading container registry platform for cloud native applications, leveraging agile operations and integrated container security. "/> <meta property="og:image" content="https://www.oracle.com/a/ocom/img/social-og-oci-logo-1200x628.jpg"/> <!-- /F13v0 --> <!-- F13v1 --> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="What Is Docker?"> <meta name="twitter:description" content="What is Docker and how is this Container Registry used in the cloud. Learn why Docker is the leading container registry platform for cloud native applications, leveraging agile operations and integrated container security. "> <meta name="twitter:image" content="https://www.oracle.com/a/ocom/img/social-og-oci-logo-1200x1200.jpg"> <!-- /F13v1 --> <!-- end : ocom/common/global/components/social-media-meta-tags --> <!-- start : ocom/common/global/components/seo-hreflang-meta-tags --><link rel="canonical" href="https://www.oracle.com/fi/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-AE" href="https://www.oracle.com/ae/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ar-AE" href="https://www.oracle.com/ae-ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-AR" href="https://www.oracle.com/ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="de-AT" href="https://www.oracle.com/at/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-AU" href="https://www.oracle.com/au/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-BA" href="https://www.oracle.com/ba/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-BD" href="https://www.oracle.com/bd/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-BE" href="https://www.oracle.com/be/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="bg-BG" href="https://www.oracle.com/bg/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-BH" href="https://www.oracle.com/bh/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ar-BH" href="https://www.oracle.com/bh-ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="pt-BR" href="https://www.oracle.com/br/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-BZ" href="https://www.oracle.com/bz/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-CA" href="https://www.oracle.com/ca-en/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="fr-CA" href="https://www.oracle.com/ca-fr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="de-CH" href="https://www.oracle.com/ch-de/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="fr-CH" href="https://www.oracle.com/ch-fr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-CL" href="https://www.oracle.com/cl/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="zh-CN" href="https://www.oracle.com/cn/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-CO" href="https://www.oracle.com/co/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-CR" href="https://www.oracle.com/cr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-CY" href="https://www.oracle.com/cy/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="cs-CZ" href="https://www.oracle.com/cz/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="de-DE" href="https://www.oracle.com/de/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-US" href="https://www.oracle.com/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="da-DK" href="https://www.oracle.com/dk/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="fr-DZ" href="https://www.oracle.com/dz/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-EE" href="https://www.oracle.com/ee/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-EG" href="https://www.oracle.com/eg/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ar-EG" href="https://www.oracle.com/eg-ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-ES" href="https://www.oracle.com/es/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="fi-FI" href="https://www.oracle.com/fi/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="fr-FR" href="https://www.oracle.com/fr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-GH" href="https://www.oracle.com/gh/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="el-GR" href="https://www.oracle.com/gr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-HK" href="https://www.oracle.com/hk/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="hr-HR" href="https://www.oracle.com/hr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="hu-HU" href="https://www.oracle.com/hu/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-ID" href="https://www.oracle.com/id/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-IE" href="https://www.oracle.com/ie/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="he-IL" href="https://www.oracle.com/il/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-IL" href="https://www.oracle.com/il-en/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-IN" href="https://www.oracle.com/in/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="it-IT" href="https://www.oracle.com/it/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-JO" href="https://www.oracle.com/jo/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ar-JO" href="https://www.oracle.com/jo-ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ja-JP" href="https://www.oracle.com/jp/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-KE" href="https://www.oracle.com/ke/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ko-KR" href="https://www.oracle.com/kr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-KW" href="https://www.oracle.com/kw/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ar-KW" href="https://www.oracle.com/kw-ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-LK" href="https://www.oracle.com/lk/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-LU" href="https://www.oracle.com/lu/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="lv-LV" href="https://www.oracle.com/lv/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="fr-MA" href="https://www.oracle.com/ma/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-MX" href="https://www.oracle.com/mx/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-MY" href="https://www.oracle.com/my/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-NG" href="https://www.oracle.com/ng/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="nl-NL" href="https://www.oracle.com/nl/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="no-NO" href="https://www.oracle.com/no/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-NZ" href="https://www.oracle.com/nz/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-PE" href="https://www.oracle.com/pe/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-PH" href="https://www.oracle.com/ph/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="pl-PL" href="https://www.oracle.com/pl/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="pt-PT" href="https://www.oracle.com/pt/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-QA" href="https://www.oracle.com/qa/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ar-QA" href="https://www.oracle.com/qa-ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ro-RO" href="https://www.oracle.com/ro/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="sr-RS" href="https://www.oracle.com/rs/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-SA" href="https://www.oracle.com/sa/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="ar-SA" href="https://www.oracle.com/sa-ar/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="sv-SE" href="https://www.oracle.com/se/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-SG" href="https://www.oracle.com/sg/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="sl-SI" href="https://www.oracle.com/si/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="sk-SK" href="https://www.oracle.com/sk/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="fr-SN" href="https://www.oracle.com/sn/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-TH" href="https://www.oracle.com/th/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="tr-TR" href="https://www.oracle.com/tr/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="zh-TW" href="https://www.oracle.com/tw/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="uk-UA" href="https://www.oracle.com/ua/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-GB" href="https://www.oracle.com/uk/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="es-UY" href="https://www.oracle.com/uy/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-VN" href="https://www.oracle.com/vn/cloud/cloud-native/container-registry/what-is-docker/" /> <link rel="alternate" hreflang="en-ZA" href="https://www.oracle.com/za/cloud/cloud-native/container-registry/what-is-docker/" /> <meta name="altpages" content="ae,ae-ar,ar,at,au,ba,bd,be,bg,bh,bh-ar,br,bz,ca-en,ca-fr,ch-de,ch-fr,cl,cn,co,cr,cy,cz,de,dk,dz,ee,eg,eg-ar,es,fi,fr,gh,gr,hk,hr,hu,id,ie,il,il-en,in,it,jo,jo-ar,jp,ke,kr,kw,kw-ar,lk,lu,lv,ma,mx,my,ng,nl,no,nz,pe,ph,pl,pt,qa,qa-ar,ro,rs,sa,sa-ar,se,sg,si,sk,sn,th,tr,tw,ua,uk,uy,vn,za"> <script type="text/javascript"> var pageData = pageData || {}; //page info pageData.pageInfo = pageData.pageInfo || {}; pageData.pageInfo.altPages = "ae,ae-ar,ar,at,au,ba,bd,be,bg,bh,bh-ar,br,bz,ca-en,ca-fr,ch-de,ch-fr,cl,cn,co,cr,cy,cz,de,dk,dz,ee,eg,eg-ar,es,fi,fr,gh,gr,hk,hr,hu,id,ie,il,il-en,in,it,jo,jo-ar,jp,ke,kr,kw,kw-ar,lk,lu,lv,ma,mx,my,ng,nl,no,nz,pe,ph,pl,pt,qa,qa-ar,ro,rs,sa,sa-ar,se,sg,si,sk,sn,th,tr,tw,ua,uk,uy,vn,za"; </script> <!-- end : ocom/common/global/components/seo-hreflang-meta-tags --> <!-- end : ocom/common/global/components/head --> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!-- start : ocom/common/global/components/framework/layoutAssetHeadInfo --> <!-- Container/Display Start --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <link rel="dns-prefetch" href="https://dc.oracleinfinity.io" crossOrigin="anonymous" /> <link rel="dns-prefetch" href="https://oracle.112.2o7.net" crossOrigin="anonymous" /> <link rel="dns-prefetch" href="https://s.go-mpulse.net" crossOrigin="anonymous" /> <link rel="dns-prefetch" href="https://c.go-mpulse.net" crossOrigin="anonymous" /> <link rel="preconnect" href="https://tms.oracle.com/" crossOrigin="anonymous" /> <link rel="preconnect" href="https://tags.tiqcdn.com/" crossOrigin="anonymous" /> <link rel="preconnect" href="https://consent.trustarc.com" crossOrigin="anonymous" /> <link rel="preconnect" href="https://d.oracleinfinity.io" crossOrigin="anonymous" /> <link rel="preload" href="https://www.oracle.com/asset/web/fonts/oraclesansvf.woff2" as="font" crossOrigin="anonymous" type="font/woff2" /> <link rel="preload" href="https://www.oracle.com/asset/web/fonts/redwoodicons.woff2" as="font" crossorigin="anonymous" type="font/woff2"> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- Container/Display end --> <!-- Container/Display Start --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- BEGIN CSS/JS --> <style> body{margin:0} .f20w1 > section{opacity:0;filter:opacity(0%)} .f20w1 > div{opacity:0;filter:opacity(0%)} .f20w1 > nav{opacity:0;filter:opacity(0%)} </style> <script> !function(){ var d=document.documentElement;d.className=d.className.replace(/no-js/,'js'); if(document.location.href.indexOf('betamode=') > -1) document.write('<script src="/asset/web/js/ocom-betamode.js"><\/script>'); }(); </script> <link data-wscss href="/asset/web/css/redwood-base.css" rel="preload" as="style" onload="this.rel='stylesheet';" onerror="this.rel='stylesheet'"> <link data-wscss href="/asset/web/css/redwood-styles.css" rel="preload" as="style" onload="this.rel='stylesheet';" onerror="this.rel='stylesheet'"> <noscript> <link href="/asset/web/css/redwood-base.css" rel="stylesheet"> <link href="/asset/web/css/redwood-styles.css" rel="stylesheet"> </noscript> <link data-wsjs data-reqjq href="/asset/web/js/redwood-base.js" rel="preload" as="script"> <link data-wsjs data-reqjq href="/asset/web/js/redwood-lib.js" rel="preload" as="script"> <script data-wsjs src="/asset/web/js/jquery-min.js" async onload="$('head link[data-reqjq][rel=preload]').each(function(){var a = document.createElement('script');a.async=false;a.src=$(this).attr('href');this.parentNode.insertBefore(a, this);});$(function(){$('script[data-reqjq][data-src]').each(function(){this.async=true;this.src=$(this).data('src');});});"></script> <!-- END CSS/JS --> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- Container/Display end --> <!-- Container/Display Start --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- www-us HeadAdminContainer --> <link rel="icon" href="https://www.oracle.com/asset/web/favicons/favicon-32.png" sizes="32x32"> <link rel="icon" href="https://www.oracle.com/asset/web/favicons/favicon-128.png" sizes="128x128"> <link rel="icon" href="https://www.oracle.com/asset/web/favicons/favicon-192.png" sizes="192x192"> <link rel="apple-touch-icon" href="https://www.oracle.com/asset/web/favicons/favicon-120.png" sizes="120x120"> <link rel="apple-touch-icon" href="https://www.oracle.com/asset/web/favicons/favicon-152.png" sizes="152x152"> <link rel="apple-touch-icon" href="https://www.oracle.com/asset/web/favicons/favicon-180.png" sizes="180x180"> <meta name="msapplication-TileColor" content="#fcfbfa"/> <meta name="msapplication-square70x70logo" content="favicon-128.png"/> <meta name="msapplication-square150x150logo" content="favicon-270.png"/> <meta name="msapplication-TileImage" content="favicon-270.png"/> <meta name="msapplication-config" content="none"/> <meta name="referrer" content="no-referrer-when-downgrade"/> <style> #oReactiveChatContainer1 { display:none;} </style> <!--Tealium embed code Start --> <script src="https://tms.oracle.com/main/prod/utag.sync.js"></script> <!-- Loading script asynchronously --> <script type="text/javascript"> (function(a,b,c,d){ if(location.href.indexOf("tealium=dev") == -1) { a='https://tms.oracle.com/main/prod/utag.js'; } else { a='https://tms.oracle.com/main/dev/utag.js'; } b=document;c='script';d=b.createElement(c);d.src=a;d.type='text/java'+c;d.async=true; a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a); })(); </script> <!--Tealium embed code End--> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- Container/Display end --> <!-- end : ocom/common/global/components/framework/layoutAssetHeadInfo --> <script>(window.BOOMR_mq=window.BOOMR_mq||[]).push(["addVar",{"rua.upush":"false","rua.cpush":"false","rua.upre":"false","rua.cpre":"false","rua.uprl":"false","rua.cprl":"false","rua.cprf":"false","rua.trans":"","rua.cook":"false","rua.ims":"false","rua.ufprl":"false","rua.cfprl":"false","rua.isuxp":"false","rua.texp":"norulematch","rua.ceh":"false","rua.ueh":"false","rua.ieh.st":"0"}]);</script> <script>!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="DXNLE-YBWWY-AR74T-WMD99-77VRA",function(){function e(){if(!o){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,i.parentNode.appendChild(e),o=!0}}function t(e){o=!0;var n,t,a,r,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(i.parentNode,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",r=(a.frameElement||a).style,r.width=0,r.height=0,r.border=0,r.display="none",i.parentNode.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(_){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void(0);",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("<bo"+"dy onload='document._boomrl();'>");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=12,window.BOOMR.url=n+"DXNLE-YBWWY-AR74T-WMD99-77VRA";var i=document.currentScript||document.getElementsByTagName("script")[0],o=!1,r=document.createElement("link");if(r.relList&&"function"==typeof r.relList.supports&&r.relList.supports("preload")&&"as"in r)window.BOOMR.snippetMethod="p",r.href=window.BOOMR.url,r.rel="preload",r.as="script",r.addEventListener("load",e),r.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!o)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),i.parentNode.appendChild(r);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n=""=="true"?1:0,t="",a="bdpnbeqxjpkyoz52pbfq-f-cb798424c-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,o={"ak.v":"39","ak.cp":"82485","ak.ai":parseInt("604074",10),"ak.ol":"0","ak.cr":3,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"59a08976","ak.r":42017,"ak.a2":n,"ak.m":"dscx","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":32900,"ak.gh":"184.28.235.13","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1740273739","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==e0O/uOG0Nmd8HCVEsh3lMRffCN9QeD+B8/TDQ9PtKjT+oOTC04i7jfgD79iGsCMEP08eeW3jEUgkbUuTfZ2gQOvNJkOMzi2Xr8FNyEHk6ru/fAZRKhMlIfINhNCHz83UZaFffXFAadTzr/XcAOpwDyjAvqhoqzvf4vZv6/LoGB5Utcqo8w2SmNSrWdfpSurq1A3W/JiBf8n0rLdDHO9hDP8QxkTBJKDmmheI0e+NYLrEGGQwqaLQzJpP3wFONT6d0Y5V4Q9F7vUn3NRcPCoaIeUm42Z/e8BunwRYO5LFbWGKYQurQhZbh7lk6L8/CF+71Uf+G8322+cjHifO5+JMtlI8SWNi+qcv4OJZO2Oz/ujmzE7waUp01cw1wBIiXV3wmppKXaAUnlr/KrYE3ERr2Fzhsy9ckoPNgWljehDN7/s=","ak.pv":"501","ak.dpoabenc":"","ak.tf":i};if(""!==t)o["ak.ruds"]=t;var r={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))o["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(o)},rv:function(){var e=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:o,akDNSPreFetchDomain:a,init:function(){if(!r.i){var e=BOOMR.subscribe;e("before_beacon",r.av,null,null),e("onbeacon",r.rv,null,null),r.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head><!-- end : ocom/common/global/components/framework/head --> <!-- start : ocom/common/global/components/redwood/layoutAssetStartBodyInfo --> <body class="f20 f20v0 rwtheme-oci rc162-progress-bar"> <!-- Container/Display Start --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- www-us StartBodyAdminContainer --> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- Container/Display end --> <div class="f20w1"> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- U30v0 --> <style> #u30{opacity:1 !important;filter:opacity(100%) !important;position:sticky;top:0} .u30v0{background:#3a3632;height:50px;overflow:hidden;border-top:5px solid #3a3632;border-bottom:5px solid #3a3632} #u30nav,#u30tools{visibility:hidden} .u30brand{height:50px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:1344px;padding:0 48px;margin:0 auto} .u30brandw1{display:flex;flex-direction:row;color:#fff;text-decoration:none;align-items:center} #u30btxt{font-family:sans-serif;font-size:14px;position:relative;margin-left:12px;padding-left:16px;white-space:nowrap;color:#fff;text-decoration:none} #u30btxt:before{content:'';position:absolute;left:0;width:1px;opacity:0.3;height:44px;top:50%;margin-top:-22px;background:#FBF9F8} #u30brandtxt{display:block} @media (max-width:1024px){.u30brand{padding:0 24px}} @media (max-width:400px){#u30btxt{display:none}} #u30skip2,#u30skip2content{transform:translateY(-100%);position:fixed} .rtl #u30{direction:rtl} .rtl #u30btxt{margin-right:12px;margin-left:0;padding-right:16px;;padding-left:0} .rtl #u30btxt:before{left:auto;right:0} </style> <section id="u30" class="u30 u30v0 pause searchv2" data-trackas="header"> <div id="u30skip2" aria-expanded="false" tabindex="-1"> <ul> <li><a id="u30acc" href="/fi/corporate/accessibility/">Napsauta t盲t盲 lukeaksesi saavutettavuusk盲yt盲nt枚mme</a></li> <li><a id="u30skip2c" href="#maincontent">Siirry sis盲lt枚枚n</a></li> </ul> </div> <div class="u30w1 cwidth" id="u30w1"> <div id="u30brand" class="u30brand"> <div class="u30brandw1"> <a id="u30btitle" href="/fi/" data-lbl="logo" aria-label="Home"> <div id="u30logo"> <svg style="display:block" class="u30-oicn" xmlns="http://www.w3.org/2000/svg" width="32" height="21" viewBox="0 0 32 21"><path fill="#C74634" d="M9.9,20.1c-5.5,0-9.9-4.4-9.9-9.9c0-5.5,4.4-9.9,9.9-9.9h11.6c5.5,0,9.9,4.4,9.9,9.9c0,5.5-4.4,9.9-9.9,9.9H9.9 M21.2,16.6c3.6,0,6.4-2.9,6.4-6.4c0-3.6-2.9-6.4-6.4-6.4h-11c-3.6,0-6.4,2.9-6.4,6.4s2.9,6.4,6.4,6.4H21.2"/></svg> </div> </a> <a id="u30btxt" href="/fi/cloud/" aria-label="Oracle Cloud Infrastructure" data-lbl="Logotxt"> <svg id="u30brandtxt" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.14 18.12" width="39" height="19"><path fill="#ffffff" d="M8.16,18.12a7.76,7.76,0,0,1-6.05-2.35A9.79,9.79,0,0,1,0,9.05,9.58,9.58,0,0,1,2.14,2.38,7.65,7.65,0,0,1,8.16,0a7.65,7.65,0,0,1,6,2.38,9.58,9.58,0,0,1,2.14,6.67,9.79,9.79,0,0,1-2.11,6.72A7.71,7.71,0,0,1,8.16,18.12Zm0-3.19a3.69,3.69,0,0,0,3.24-1.51,7.48,7.48,0,0,0,1.08-4.37A7.37,7.37,0,0,0,11.4,4.7,3.69,3.69,0,0,0,8.16,3.19,3.75,3.75,0,0,0,4.9,4.7,7.45,7.45,0,0,0,3.84,9.05,7.56,7.56,0,0,0,4.9,13.42,3.75,3.75,0,0,0,8.16,14.93ZM32,14v3.12a11.25,11.25,0,0,1-2.19.72,10.85,10.85,0,0,1-2.71.31q-4.2,0-6.36-2.38T18.54,8.86A9.81,9.81,0,0,1,19.6,4.13a7.18,7.18,0,0,1,3-3A9.38,9.38,0,0,1,27.23,0a10.19,10.19,0,0,1,2.35.26,9,9,0,0,1,1.9.68V4.1a15.34,15.34,0,0,0-2.21-.67,8.49,8.49,0,0,0-1.78-.19A4.85,4.85,0,0,0,23.7,4.7a6,6,0,0,0-1.32,4.16,6.85,6.85,0,0,0,1.3,4.48,4.66,4.66,0,0,0,3.81,1.56,10.24,10.24,0,0,0,2-.21A22.73,22.73,0,0,0,32,14Zm2.44,3.81V.34h3.74V17.78Z"/></svg> </a> </div> </div> <div id="u30nav" class="u30nav" data-closetxt="Sulje valikko" data-trackas="menu"> <nav id="u30navw1" aria-label="OCI website" data-trackas="header-oci"> <button data-navtarget="about" aria-controls="about" aria-expanded="false" class="u30navitem" data-lbl="about">Tietoja</button> <button data-navtarget="services" aria-controls="services" aria-expanded="false" class="u30navitem" data-lbl="services">Palvelut</button> <button data-navtarget="solutions" aria-controls="solutions" aria-expanded="false" class="u30navitem" data-lbl="solutions">Ratkaisut</button> <button data-navtarget="pricing" aria-controls="pricing" aria-expanded="false" class="u30navitem" data-lbl="pricing">Hinnoittelu</button> <button data-navtarget="partners" aria-controls="partners" aria-expanded="false" class="u30navitem" data-lbl="partners">Kumppanit</button> <button data-navtarget="resources" aria-controls="resources" aria-expanded="false" class="u30navitem" data-lbl="resources">Resurssit</button> </nav> </div> <div id="u30tools" class="u30tools"> <div id="u30search"> <div id="u30searchw1"> <div id="u30searchw2"> <form name="u30searchForm" id="u30searchForm" data-contentpaths="/content/Web/Shared/Auto-Suggest Panel Event" method="get" action="https://search.oracle.com/fi/results"> <div class="u30s1"> <button id="u30closesearch" aria-label="Sulje haku" type="button"> <span>Sulje haku</span> <svg width="9" height="14" viewBox="0 0 9 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 13L2 7L8 1" stroke="#161513" stroke-width="2"/></svg> </button> <span class="u30input"> <div class="u30inputw1"> <input id="u30input" name="q" value="" type="text" placeholder="Haku" autocomplete="off" aria-autocomplete="both" aria-label="Hae osoitteesta Oracle.com" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-controls="u30searchw3"> </div> <input type="hidden" name="size" value="10"> <input type="hidden" name="page" value="1"> <input type="hidden" name="tab" value="all"> <span id="u30searchw3title" class="u30visually-hidden">Hae osoitteesta Oracle.com</span> <div id="u30searchw3" data-pagestitle="EHDOTETUT LINKIT" data-autosuggesttitle="HAKUEHDOTUKSET" data-allresultstxt="Kaikki tulokset kohteelle" data-allsearchpath="https://search.oracle.com/fi/results?q=u30searchterm&size=10&page=1&tab=all" role="listbox" aria-labelledby="u30searchw3title"> <ul id="u30quicklinks" class="autocomplete-items" role="group" aria-labelledby="u30quicklinks-title"> <li role="presentation" class="u30auto-title" id="u30quicklinks-title">PIKALINKIT</li> <li role="option"><a href="/fi/cloud/" data-lbl="quick-links:oci">Oracle Cloud Infrastructure</a></li> <li role="option"><a href="/fi/applications/" data-lbl="quick-links:applications">Oracle Fusion Cloud Applications</a></li> <li role="option"><a href="/fi/database/technologies/" data-lbl="quick-links:database">Oracle Database</a></li> <li role="option"><a href="/fi/java/technologies/downloads/" data-lbl="quick-links:download-java">Nouda Java</a></li> <li role="option"><a href="/fi/careers/" data-lbl="quick-links:careers">Oracle-ty枚paikat</a></li> </ul> </div> <span class="u30submit"> <input class="u30searchbttn" type="submit" value="L盲het盲 haku"> </span> <button id="u30clear" type="reset" aria-label="Clear Search"> <svg width="20" height="20" viewBox="0 0 20 20" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7 7L13 13M7 13L13 7M19 10C19 14.9706 14.9706 19 10 19C5.02944 19 1 14.9706 1 10C1 5.02944 5.02944 1 10 1C14.9706 1 19 5.02944 19 10Z" stroke="#161513" stroke-width="2"/></svg> </button> </span> </div> </form> <div id="u30announce" data-alerttxt="navigointiehdotuksia k盲ytet盲盲n yl盲- ja alanuolilla" class="u30visually-hidden" aria-live="polite"></div> </div> </div> <button class="u30searchBtn" id="u30searchBtn" type="button" aria-label="Avaa hakukentt盲" aria-expanded="false"> <span>Haku</span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M15,15l6,6M17,10a7,7,0,1,1-7-7A7,7,0,0,1,17,10Z"/></svg> </button> </div> <!-- ACS --> <span id="ac-flag"> <a class="flag-focus" href="/fi/countries-list.html#countries" data-ajax="true" rel="lightbox" role="button"> <span class="sr-only">Country</span> <img class="flag-image" src="" alt=""/> <svg class="default-globe" alt="Country" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <rect width="20" height="20" fill="url(#pattern0)"/> <defs> <pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1"> <use xlink:href="#image0_1_1830" transform="translate(-0.166667 -0.166667) scale(0.0138889)"/> </pattern> <image alt="" id="image0_1_1830" width="96" height="96" xlink:href="data:image/png;base64,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"/> </defs> </svg> </a> </span> <!-- ACS --> <a href="/fi/oci-menu-v3/" id="u30ham" role="button" aria-expanded="false" aria-haspopup="true" aria-controls="u30navw1"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" preserveAspectRatio="none"> <title>Valikko</title> <path d="M16,4 L2,4" class="p1"></path> <path d="M2,12 L22,12" class="p2"></path> <path d="M2,20 L16,20" class="p3"></path> <path d="M0,12 L24,12" class="p4"></path> <path d="M0,12 L24,12" class="p5"></path> </svg> <span>Valikko</span> </a> <a href="/fi/corporate/contact/" class="u30contactBtn" data-lbl="contact-us" title="Yhteydenotto" aria-label="Yhteydenotto"> <span>Ota yhteytt盲</span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M15.9,3V14h-9L4.81,17H3.09V3ZM8.12,14v3.94l9,.07,2.11,2.92H21V7L15.9,7"/></svg> </a> <a href="/fi/cloud/sign-in.html" class="u30cloud" data-lbl="sign-in-account"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M17,19.51A3,3,0,0,0,14,17H10a3,3,0,0,0-3,2.51m9.92,0a9,9,0,1,0-9.92,0m9.92,0a9,9,0,0,1-9.92,0M15,10a3,3,0,1,1-3-3A3,3,0,0,1,15,10Z"/></svg> <span class="acttxt">Kirjaudu Oracle Cloudiin</span> </a> </div> </div> <script> var u30min = [722,352,0,0]; var u30brsz = new ResizeObserver(u30 => { document.getElementById("u30").classList.remove("u30mobile","u30tablet","u30notitle"); let u30b = document.getElementById("u30brand").offsetWidth, u30t = document.getElementById("u30tools").offsetWidth ; u30v = document.getElementById("u30navw1"); u30w = document.getElementById("u30w1").offsetWidth - 48; if((u30b + u30t) > u30min[0]){ u30min[2] = ((u30b + u30t) > 974) ? u30b + u30t + 96 : u30b + u30t + 48; }else{ u30min[2] = u30min[0]; } u30min[3] = ((u30b + 112) > u30min[1]) ? u30min[3] = u30b + 112 : u30min[3] = u30min[1]; u30v.classList.add("u30navchk"); u30min[2] = (u30v.lastElementChild.getBoundingClientRect().right > u30min[2]) ? Math.ceil(u30v.lastElementChild.getBoundingClientRect().right) : u30min[2]; u30v.classList.remove("u30navchk"); if(u30w <= u30min[3]){ document.getElementById("u30").classList.add("u30notitle"); } if(u30w <= u30min[2]){ document.getElementById("u30").classList.add("u30mobile"); } }); var u30wrsz = new ResizeObserver(u30 => { let u30n = document.getElementById("u30navw1").getBoundingClientRect().height, u30h = u30[0].contentRect.height; let u30c = document.getElementById("u30").classList, u30w = document.getElementById("u30w1").offsetWidth - 48, u30m = "u30mobile", u30t = "u30tablet"; if(u30w <= u30min[3]){ u30c.add("u30notitle"); }else{ u30c.remove("u30notitle"); } if(u30c.contains("navexpand") && u30c.contains(u30m) && u30w > u30min[2]){ if(!document.querySelector("button.u30navitem.active")){ document.getElementById("u30ham").click(); } u30c.remove(u30m); if(document.getElementById("u30").getBoundingClientRect().height > 80){ u30c.add(u30t); }else{ u30c.remove(u30t); } }else if(u30w <= u30min[2]){ u30c.add(u30m); u30c.remove(u30t); }else if(u30n < 30 && u30h > 80){ u30c.add(u30t); u30c.remove(u30m); }else if(u30n > 30){ u30c.add(u30m); u30c.remove(u30t); }else if(u30n < 30 && u30h <= 80){ u30c.remove(u30m); if(document.getElementById("u30").getBoundingClientRect().height > 80){ u30c.add(u30t); }else{ u30c.remove(u30t); } } }); u30brsz.observe(document.getElementById("u30btitle")); u30wrsz.observe(document.getElementById("u30")); </script> </section> <!-- /U30v0 --> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- end : ocom/common/global/components/redwood/layoutAssetStartBodyInfo --> <!-- widgetType = _Raw-Text --> <!-- ptbWidget = false --> <!-- ptbWidget = false --> <!-- displayBreadcrumb = Yes --> <!-- start : ocom/common/global/components/u03v6-breadcrumb --> <!-- U03v6 --> <nav class="u03 u03v6" data-trackas="breadcrumb" data-ocomid="u03"> <div class="cwidth"> <div class="u03w1"> <ul> <li class="u03first"><a href="https://www.oracle.com/fi/index.html">Oracle Suomi</a></li> <li><a href="/fi/cloud/">Pilviratkaisut</a></li> <li><a href="/fi/cloud/cloud-native/">Cloud Native</a></li> <li><a href="/fi/cloud/cloud-native/container-registry/">Container Registry</a></li> </ul> </div> </div> <script type="text/javascript"> var pageData = pageData || {}; //page info pageData.pageInfo = pageData.pageInfo || {}; pageData.pageInfo.breadCrumbs = "Oracle Suomi / Pilviratkaisut / Cloud Native / Container Registry"; </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Oracle Suomi", "item": "https://www.oracle.comhttps://www.oracle.com/fi/index.html" }, { "@type": "ListItem", "position": 2, "name": "Pilviratkaisut", "item": "https://www.oracle.com/fi/cloud/" }, { "@type": "ListItem", "position": 3, "name": "Cloud Native", "item": "https://www.oracle.com/fi/cloud/cloud-native/" }, { "@type": "ListItem", "position": 4, "name": "Container Registry", "item": "https://www.oracle.com/fi/cloud/cloud-native/container-registry/" } ] } </script> </nav> <!-- /U03v6 --> <!-- end : ocom/common/global/components/u03v6-breadcrumb --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- RC25v0 --> <section class="rc25 rc25v0" data-trackas="rc25" data-a11y="true"> <div class="rc25w1 cwidth"> <h1 class="osans">What Is Docker?</h1> <p>November 9, 2021</p> </div> </section> <!-- /RC25v0 --> <!-- RC24v0 --><!-- <section class="rc24 rc24v0" data-a11y="true"> <div class="rc24w1 cwidth"> <figure> <img data-src="/a/ocom/img/" alt=""> </figure> </div> </section> --><!-- /RC24v0 --> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- start : ocom/common/global/components/compass/related-widgets --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://www.oracle.com/cloud/cloud-native/container-registry/what-is-docker/" }, "headline": "What Is Docker?", "image": "", "author": [ { "@type": "Organization", "name": "Oracle", "url": "https://www.oracle.com/" } ], "publisher": { "@type": "Organization", "name": "Oracle", "logo": { "@type": "ImageObject", "url": "https://www.oracle.com/a/ocom/img/customerlogo-oracle-clr.svg" } }, "datePublished": "2021-11-09" } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "What is Docker?", "acceptedAnswer": { "@type": "Answer", "text": "A Docker container is a packaging format that packages all the code and dependencies of an application in a standard format that allows it to run quickly and reliably across computing environments. A Docker container is a popular lightweight, standalone, executable container that includes everything needed to run an application, including libraries, system tools, code, and runtime. Docker is also a software platform that allows developers to build, test, and deploy containerized applications quickly." } },{ "@type": "Question", "name": "Who uses Docker?", "acceptedAnswer": { "@type": "Answer", "text": "Docker is an open application development framework that鈥檚 designed to benefit DevOps and developers. Using Docker, developers can easily build, pack, ship, and run applications as lightweight, portable, self-sufficient containers, which can run virtually anywhere. Containers allow developers to package an application with all of its dependencies and deploy it as a single unit. By providing prebuilt and self-sustaining application containers, developers can focus on the application code and use without worrying about the underlying operating system or deployment system." } }] } </script> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/F22-Multi-Column-Page-Framework/V0-Display --> <!-- F22v0 --> <div class="f22 f22v0 cpad" data-trackas="f22" data-ocomid="f22"> <div class="f22w1 cwidth"> <div class="f22w2 f22sidebar"> <!-- Left Column Widget - 1 --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- RC78v0 --> <section class="rc78 rc78v0" data-trackas="rc78" data-ocomid="rc78" data-a11y="true"> <div class="rc78w1"> <div class="rc78w2"> <p id="topics-label"><strong>In This Article</strong></p> <ul aria-labelledby="topics-label"> <li><a href="#docker-defined">Docker Defined</a></li> <li><a href="#who-uses-docker">Who Uses Docker?</a></li> <li><a href="#docker-vs-kubernetes">Docker Versus Kubernetes</a></li> <li><a href="#docker-basics">Docker Basics</a></li> <li><a href="#docker">Docker—Two Key Dimensions</a></li> <li><a href="#docker-image">Docker Image—Development to Production</a></li> <li><a href="#docker-versions">Docker Versions—Maturity of Underlying Technology</a></li> <li><a href="#container-cloud-service">Container Cloud Services</a></li> <li><a href="#docker-images">Docker Images From Oracle</a></li> </ul> </div> </div> </section> <!-- /RC78v0 --> <!-- END: oWidget_C/_Raw-Text/Display --> </div> <div class="f22w2"> <!-- Right Column Widget - 1 --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- RC24v0 --> <section class="rc24 rc24v1 cpad" id="docker-defined"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Docker Defined</h2> <p>A Docker container is a packaging format that packages all the code and dependencies of an application in a standard format that allows it to run quickly and reliably across computing environments. A Docker container is a popular lightweight, standalone, executable container that includes everything needed to run an application, including libraries, system tools, code, and runtime. Docker is also a software platform that allows developers to build, test, and deploy containerized applications quickly.</p> <p>Containers as a Service (CaaS) or Container Services are managed cloud services that manage the lifecycle of containers. Container services help orchestrate (start, stop, scale) the runtime of containers. Using container services, you can simplify, automate, and accelerate your application development and deployment lifecycle.</p> <p>Docker and Container Services have seen rapid adoption and have been a tremendous success over the last several years. From an almost unknown and rather technical <a href="https://developer.oracle.com/open-source/what-is-open-source/" data-lbl="open-source">open source</a> technology in 2013, Docker has evolved into a standardized runtime environment now officially supported for many Oracle enterprise products.</p> <h3>Define Docker Terminology</h3> <h4>Docker:</h4> <p>A software container platform designed for developing, shipping, and running apps leveraging container technology. Docker comes in two versions: enterprise edition and community edition</p> <h4>Container:</h4> <p>Unlike a VM which provides hardware virtualization, a container provides lightweight, operating-system-level virtualization by abstracting the “user space.” <a href="https://www.docker.com/resources/what-container" target="_blank">Containers</a> share the host system鈥檚 kernel with other containers. A container, which runs on the host operating system, is a standard software unit that packages code and all its dependencies, so applications can run quickly and reliably from one environment to another. Containers are nonpersistent and are spun up from images.</p> <h4>Docker engine:</h4> <p>The open source host software building and running the containers. Docker Engines act as the client-server application supporting containers on various Windows servers and Linux operating systems, including <a href="/fi/linux/what-is-linux/">Oracle Linux</a>, CentOS, Debian, Fedora, RHEL, SUSE, and Ubuntu.</p> <h4>Docker images:</h4> <p> Collection of software to be run as a container that contains a set of instructions for creating a container that can run on the Docker platform. Images are immutable, and changes to an image require to build a new image.</p> <h4>Docker Registry:</h4> <p>Place to store and download images. The registry is a stateless and scalable server-side application that stores and distributes <a href="https://docs.docker.com/registry/" target="_blank">Docker images</a>.</p> <div class="obttns"> <div> <a href="/fi/cloud-native/container-registry/" data-lbl="cloud-container-registry">Cloud Container Registry</a></div> </div> </div> </section> <!-- /RC24v0 --> <!-- RC24v0 --> <section class="rc24 rc24v0 cpad" id="who-uses-docker"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Who Uses Docker?</h2> <p>Docker is an open application development framework that’s designed to benefit DevOps and developers. Using Docker, developers can easily build, pack, ship, and run applications as lightweight, portable, self-sufficient containers, which can run virtually anywhere. Containers allow developers to package an application with all of its dependencies and deploy it as a single unit. By providing prebuilt and self-sustaining application containers, developers can focus on the application code and use without worrying about the underlying operating system or deployment system.</p> <p>Additionally, developers can leverage thousands of open source container applications that are already designed to run within a Docker container. For DevOps teams, Docker lends itself to continuous integration and development toolchains and reduces the constraints and complexity needed within their system architecture to deploy and manage the applications. With the introduction of container orchestration cloud services, any developer can develop containerized applications locally in their development environment, and then move and run those containerized applications in production on cloud services, such as managed Kubernetes services.</p> <h3>Docker and Developers</h3> <p>Containers can be packaged by any kind of developer. Individuals in the software industry often separate developers by specialization—front end, back end, or any concentration between. While you mostly may see back-end developers packaging containers, anyone familiar with CaaS basic concepts can succeed in this particular area of the software development life cycle. Before you鈥檙e ready to package your application’s dependencies, check out <a href="https://developer.oracle.com">developer.oracle.com</a> and familiarize yourself with tools you can use to build your application or program.</p> </div> </section> <!-- /RC24v0 --> <!-- RC24v0 --> <section class="rc24 rc24v1 cpad" id="docker-vs-kubernetes"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Docker Versus Kubernetes</h2> <div class="rc24w2"> <p>Linux containers have existed since 2008, but they were not well known until the emergence of Docker containers in 2013. With the onset of Docker containers, came the explosion of interest in developing and deploying containerized applications. As the number of containerized applications grew to span hundreds of containers deployed across multiple servers, operating them became more complex. How do you coordinate, scale, manage, and schedule hundreds of containers? This is where <a href="/fi/cloud/what-is-kubernetes/">Kubernetes</a> can help. Kubernetes is an open source orchestration system that allows you to run your Docker containers and workloads. It helps you manage the operating complexities when moving to scale multiple containers deployed across multiple servers. The Kubernetes engine automatically orchestrates the container lifecycle, distributing the application containers across the hosting infrastructure. Kubernetes can quickly scale resources up or down, depending on the demand. It continually provisions, schedules, deletes, and monitors the health of the containers.</p> </div> </div> </section> <!-- /RC24v0 --> <!-- RC24v0 --> <section class="rc24 rc24v0 cpad" data-a11y="true" id="docker-basics"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Docker Basics</h2> <div class="rc24w2"> <p>The core concepts of Docker are images and containers. A Docker image contains everything that is needed to run your software: the code, a runtime (for example, Java Virtual Machine (JVM), drivers, tools, scripts, libraries, deployments, and more.</p> <p>A Docker container is a running instance of a Docker image. However, unlike in traditional virtualization with a type 1 or type 2 hypervisor, a Docker container runs on the kernel of the host operating system. Within a Docker image there is no separate operating system, as illustrated in Figure 1.</p> <figure> <img data-src="/a/ocom/img/cc01-what-is-docker-figure1.png" alt="docker basics image"> <figcaption>Figure 1</figcaption> </figure> <figure class="rc24inline-rt"> <div class="ytembed ytvideo ytthumbnail" data-ytid="O7qOqTd6N44" data-autoplay="1" aria-label="Core Concepts: Deployment Infrastructure - VMs vs. Kubernetes video"><img src="/a/ocom/img/yt-video-thumbnail-o7qoqtd6n44.jpg" alt=""></div> </figure> <h3>Isolation vs. Virtualization</h3> <p>Every Docker container has its own file system, its own network stack (and therefore its own IP address), its own process space, and defined resource limitations for CPU and memory. Since a Docker container does not have to boot an operating system, it starts up instantly. Docker is about isolation, i.e., separating the resources of a host operating system, as opposed to virtualization, i.e., providing a guest operating system on top of the host operating system.</p> <h3>Incremental Files System</h3> <figure class="rc24inline-rt"> <img data-src="/a/ocom/img/cc01-what-is-docker-figure2.png" alt="incremental files system image"> <figcaption>Figure 2</figcaption> </figure> <p>The file system of a Docker image is layered, with copy-on-write semantics. This enables inheritance and reuse, saves resources on disk, and enables incremental image download.</p> <p>As illustrated in Figure 2, a Docker image with a WebLogic deployment could be based on an image with an Oracle WebLogic Server domain, which could be based on a WebLogic image, which is based on a Java Development Kit (JDK) image, which in turn is based on an Oracle Linux base image.</p> <h3>Docker Registry</h3> <p>While Docker images are easy to build and developers love the simplicity and portability of Docker images, they quickly discovered that managing thousands of Docker images is very challenging. Docker Registry address this challenge. Docker Registry is a standard way to store and distribute Docker images. The Registry is an open source-based repository under the permissive Apache license.</p> <p>Docker Registry also helps improve access control and security of the Docker images stored in its repository. It manages the distribution of images and also can integrate with application development workflows. Developers can setup their own Docker Registry, or use a hosted Docker Registry service such as Docker Hub, Oracle Container Registry, Azure Container Registry, etc.</p> <p>Docker Hub is a hosted Docker registry managed by Docker. Docker Hub has over 100,000 container images from software vendors, open source projects, and the community. Docker Hub contains software and applications from official repositories such as NGINX, Logstash, Apache HTTP, Grafana, MySQL, Ubuntu, and Oracle Linux.</p> <p>When starting a container, Docker will by default automatically pull the corresponding image from the public Docker Hub if it is not available locally. Moreover, you can also create your own images and push them to Docker Hub into either a public or private repository.</p> <figure> <img data-src="/a/ocom/img/cc01-docker-registry.jpg" alt="Figure 3: Docker Registry screenshot"> <figcaption>Figure 3</figcaption> </figure> <h3>Docker as a Microservices Runtime</h3> <p>The idea of cutting monolithic applications into smaller chunks of microservices attracts a lot of attention these days among software developers.</p> <p>Microservices are independently deployed as a process, use light-weight protocols to communicate with each other, and every service owns its data. Since microservices follow a decentralized governance approach, they require a rather high amount of infrastructure automation, automated testing, fully automated CD pipelines, and skilled, agile DevOps teams.</p> <p>There is still a lot of discussion about this architectural style, yet it would be naive to assume that an application decomposed into microservices can be simply operated as a set of processes. To name only a few requirements, a microservice needs to be host-independent, and isolated on an operating system level. It must run within its resource limits, must be scaled up and down, restarted if failed, and discovered and connected to other microservices via a software defined network layer.</p> <p>Therefore, running a microservice in a Docker container puts you at an excellent jumping-off point to achieve most of these goals.</p> </div> </div> </section> <!-- /RC24v0 --> <!-- RC24v0 --> <section class="rc24 rc24v1 cpad" id="docker"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Docker—Two Key Dimensions</h2> <div class="rc24w2"> <p>Docker changes the way we build, ship, and run software in two different dimensions:</p> <ul class="obullets"> <li>It enhances the process to get applications reliably from development to production.</li> <li>It provides a standards image format to get from on-premises to cloud.</li> </ul> <p>Both dimensions are explained in more detail in the following paragraphs.</p> </div> </div> </section> <!-- /RC24v0 --> <!-- RC24v0 --> <section class="rc24 rc24v1 cpad" id="docker-image"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Docker Image—Development to Production</h2> <div class="rc24w2"> <p>Creating a Docker image with all of its dependencies solves the "but it worked for me on my development machine" problem. The key idea is that a Docker image is created automatically by a build pipeline from a source-code repository like Git and initially tested in a development environment. This immutable image will then be stored in a Docker registry.</p> <p>As shown in the Figure 4, the same image will be used for further load tests, integration tests, acceptance tests, and more. In every environment, the same image will be used. Small but necessary environmentally specific differences, such as a JDBC URL for a production database, can be fed into the container as environment variables or files.</p> <figure> <img data-src="/a/ocom/img/cc01-what-is-docker-figure4.png" alt="docker image screenshot"> <figcaption>Figure 4</figcaption> </figure> <p>Statistics show that 65% of all current Docker use cases are in development, and 48% use Docker for continuous integration.</p> <h3>Docker Cloud</h3> <p>Docker changed the adoption of public clouds: On one hand, with a Docker image, for the first time in history, a common package format exists that can be run on premises as well as on every major cloud provider. Docker containers run on a laptop the same way they run on Oracle Cloud.</p> <p>On the other hand—since Docker containers run on every major public cloud—they are a major contribution to overcoming a long curated prejudice against public clouds: vendor lock-in. Every major cloud provider now offers Docker as a PaaS.</p> </div> </div> </section> <!-- /RC24v0 --> <!-- RC24v0 --> <section class="rc24 rc24v1 cpad" id="docker-versions"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Docker Versions—Maturity of Underlying Technology</h2> <div class="rc24w2"> <p>The pace of Docker releases is much faster than the release cycle of the traditional enterprise software. Sometimes the sheer pace of Docker releases, together with the newness of the Docker project, raises concerns about the security and stability of Docker.</p> <p>Although Docker and its command line, the Docker daemon, its API, and tools such as Docker Swarm, Docker Machine, and Docker Compose only evolved in the last three years, the underlying kernel features have been available in every Linux kernel for nearly a decade.</p> <p>A prominent example of an early adopter of container technology is Google. Google has been using Linux containers even before Docker was around. Furthermore, Google runs everything in a container. It is estimated that Google launches several billion containers per week.</p> <h3>Cgroups and Namespaces History</h3> <p>The underlying Linux kernel features that Docker uses are cgroups and namespaces. In 2008 cgroups were introduced to the Linux kernel based on work previously done by Google developers<sup>1</sup>. Cgroups limit and account for the resource usage of a set of operating system processes.</p> <p>The Linux kernel uses namespace to isolate the system resources of processes from each other. The first namespace, i.e. the mount namespace, was introduced as early as 2002.<sup>2</sup></p> </div> </div> </section> <!-- /RC24v0 --> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- Right Column Widget - 2 --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- RC24v0 --> <section class="rc24 rc24v1 cpad" id="container-cloud-service"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Container Cloud Services</h2> <div class="rc24w2"> <p>The first part of this article explained some important Docker concepts. However, in a production environment it is not enough to simply run an application in a Docker container. </p> <p>To setup and operate a production environment requires hardware to run the containers. Software such as Docker, along with repositories and cluster managers, must be installed, upgraded and patched. If several Docker containers communicate across hosts, a network must be created. Clustered containers should be restarted if they fail. In addition, a set of containers linked to each other should be deployable as easily as a single logical application instance. An example of this could be a load balancer, a few web servers, some Oracle WebLogic Server instances with an admin server, a managed server, and a database. To manage containerized applications at scale, requires a container orchestration system like Kubernetes or Docker Swarm. Deploying, managing, and operating orchestration systems like Kubernetes can be challenging and time-consuming.</p> <p>To make it easier and more efficient for developers to create containerized applications, cloud providers offer Container Cloud Services or Containers as a Service (CaaS). Container Cloud Services help developers and operations teams streamline and manage the lifecycle of containers in an automated fashion. These orchestration services, typically built using Kubernetes, make it easier for DevOps teams to manage and operate containerized applications at scale. Oracle Cloud Infrastructure Kubernetes Engine and Azure Kubernetes Service are two examples of popular container orchestration managed cloud services.</p> <p><a href="/fi/cloud/cloud-native/kubernetes-engine/" data-lbl="oci-kubernetes-engine">Oracle Cloud Infrastructure Kubernetes Engine</a> is a fully managed, scalable, and highly available service that you can use to deploy your containerized applications in the cloud. Use Kubernetes Engine (sometimes abbreviated to just OKE) when your development team wants to reliably build, deploy, and manage cloud native applications.</p> </div> </div> </section> <!-- /RC24v0 --> <!-- RC24v0 --> <section class="rc24 rc24v0 cpad" data-a11y="true" id="docker-images"> <div class="rc24w1 cwidth"> <h2 class="rw-ptitle">Docker Images From Oracle</h2> <div class="rc24w2"> <figure class="rc24inline-rt"> <div class="ytembed ytvideo ytthumbnail" data-ytid="U4vJFUpBqNM" data-autoplay="1" aria-label="Quick Demo: Oracle Container Engine and Cloud Infrastructure Registry video" data-trackas="rc24-lightbox"> <img src="/a/ocom/img/yt-video-thumbnail-u4vjfupbqnm.jpg" alt="" /> </div> </figure> <p>Containers can be packaged by any kind of developer. Individuals in the software industry often separate developers by specialization—front end, back end, or any concentration between. While you mostly may see back-end developers packaging containers, anyone familiar with CaaS basic concepts can succeed in this particular area of the software development life cycle. Before you鈥檙e ready to package your application’s dependencies, check out <a href="https://developer.oracle.com">developer.oracle.com</a> and familiarize yourself with tools you can use to build your application or program.</p> <p>Below are some sources for obtaining or building Docker images for Oracle products. The Oracle GitHub repository for Docker images contains Dockerfiles and samples to build Docker images for Oracle commercial products and Oracle sponsored open source projects.</p> <ul class="obullets"> <li> <a href="https://github.com/oracle/docker-images" target="_blank" data-lbl="oracle-github-repository">Oracle GitHub repository for Docker images</a> </li> <li> <a href="https://container-registry.oracle.com/" target="_blank" data-lbl="oracle-container-registry">Oracle Container Registry</a> </li> </ul> <h3>Docker Hands-On Lab—Containerized Development With Docker</h3> <ul class="obullets"> <li> <a href="https://go.oracle.com/lp=93125" data-lbl="containerized-dev-with-docker">Containerized Development with Docker on Oracle Cloud</a> </li> </ul> <h3>References</h3> <ol class="decimal"> <li> <a href="https://en.wikipedia.org/wiki/Cgroups" target="_blank" data-lbl="cgroups">Cgroups</a> (Wikipedia) </li> <li> <a href="https://en.wikipedia.org/wiki/Linux_namespaces" target="_blank" data-lbl="linux-namespaces">Linux Namespaces</a> (Wikipedia) </li> </ol> </div> </div> </section> <!-- /RC24v0 --> <!-- END: oWidget_C/_Raw-Text/Display --> </div> </div> </div> <!-- /F22v0 --> <!-- END: oWidget_C/F22-Multi-Column-Page-Framework/V0-Display --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <div class="cb27disable"></div> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- end : ocom/common/global/components/compass/related-widgets --> <!-- start : ocom/common/global/components/framework/layoutAssetEndBodyInfo --> <!-- Dispatcher:null --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- U10v6 --> <footer id="u10" class="u10 u10v6" data-trackas="footer" type="redwood" data-ocomid="u10" data-a11y="true" data-lbl="oci-footer:"> <nav class="u10w1" aria-label="Alatunniste"> <div class="u10w2"> <div class="u10w3"> <div class="u10ttl" id="footer:resources-for">Resurssit</div> <ul> <li><a data-lbl="resources-for:career" href="/fi/corporate/careers/">Ty枚paikat</a></li> <li><a data-lbl="resources-for:developers" href="/fi/developer/">Kehitt盲j盲t</a></li> <li><a data-lbl="resources-for:investors" href="https://investor.oracle.com/home/default.aspx">Sijoittajat</a></li> <li><a data-lbl="resources-for:partners" href="/fi/partner/">Kumppanit</a></li> <li><a data-lbl="resources-for:startups" href="/fi/cloud/oracle-for-startups/">Startup-yritykset</a></li> <li><a data-lbl="resources-for:students-educators" href="https://academy.oracle.com/en/oa-web-overview.html">Opiskelijat ja opettajat</a></li> </ul> </div> </div> <div class="u10w2"> <div class="u10w3"> <div class="u10ttl" id="footer:why-oracle">Miksi Oracle</div> <ul> <li><a data-lbl="why-oracle:analyst-reports" href="/fi/corporate/analyst-reports/">Analyytikkoraportit</a></li> <li><a data-lbl="why-oracle:oracle-multicloud" href="/fi/cloud/cloud-deployment-models/">Oracle Multicloud</a></li> <li><a data-lbl="why-oracle:oci-microsoft-azure" href="/fi/cloud/azure/">OCI | Microsoft Azure</a></li> <li><a data-lbl="why-oracle:cloud-reference-architectures" href="https://docs.oracle.com/solutions/">Referenssipilviarkkitehtuurit</a></li> <li><a data-lbl="why-oracle:corporate-responsibility" href="/fi/corporate/citizenship/">Yritysvastuu</a></li> <li><a data-lbl="why-oracle:diversity-inclusion" href="/fi/corporate/careers/diversity-inclusion/">Diversiteetti ja inklusiivisuus</a></li> <li><a data-lbl="why-oracle:security-pracitices" href="/fi/corporate/security-practices/">Tietoturva</a></li> </ul> </div> </div> <div class="u10w2"> <div class="u10w3"> <div class="u10ttl" id="footer:learn">Tutustu</div> <ul> <li><a data-lbl="learn:ai" href="/fi/artificial-intelligence/what-is-ai/">Mit盲 on teko盲ly?</a></li> <li><a data-lbl="learn:cloud-computing" href="/fi/cloud/what-is-cloud-computing/">Mit盲 on pilvipalvelu?</a></li> <li><a data-lbl="learn:cloud-storage" href="/fi/cloud/storage/what-is-cloud-storage/">Mit盲 on pilvitallennus?</a></li> <li><a data-lbl="learn:hpc" href="/fi/cloud/hpc/what-is-hpc/">Mit盲 on suurteholaskenta?</a></li> <li><a data-lbl="learn:iaas" href="/fi/cloud/what-is-iaas/">Mit盲 on IaaS?</a></li> <li><a data-lbl="learn:paas" href="/fi/cloud/what-is-paas/">Mik盲 on sovellusalusta palveluna?</a></li> </ul> </div> </div> <div class="u10w2"> <div class="u10w3"> <div class="u10ttl" id="footer:whats-new">Uudet ominaisuudet</div> <ul> <li><a data-lbl="whatsnew:cloudworld" href="/fi/cloudworld/">Oracle CloudWorld</a></li> <li><a data-lbl="whatsnew:cloud-free-tier" href="/fi/cloud/free/" data-cxdtrack=":ow:o:h:nav:092121OCISiteFooter" data-adbtrack=":ow:o:h:nav:092121OCISiteFooter">Oracle Cloud Free Tier</a></li> <li><a data-lbl="whatsnew:cloud-architecture-center" href="/fi/cloud/architecture-center/">Pilviarkkitehtuurikeskus</a></li> <li><a data-lbl="whatsnew:oracle-cloud-lift" href="/fi/cloud/cloud-lift/">Cloud Lift </a></li> <li><a data-lbl="whatsnew:oracle-cloud-rewards" href="/fi/cloud/rewards/">Oracle Support Rewards</a></li> <li><a data-lbl="whatsnew:oracle-and-red-bull-racing" href="/fi/redbullracing/">Oracle Red Bull Racing</a></li> </ul> </div> </div> <div class="u10w2"> <div class="u10w3"> <div class="u10ttl" id="footer:contact-us">Ota yhteytt盲</div> <ul> <li><a href="tel:+358954941006">Myynti: +358 9 5494 1006</a></li> <li><a data-lbl="contact-us:how-can-we-help" href="/fi/corporate/contact/">Miten voimme auttaa?</a></li> <li><a data-lbl="contact-us:subscribe-to-emails" href="https://go.oracle.com/subscribe/?l_code=fi&src1=OW:O:FO">Tilaa s盲hk枚postit</a></li> <li><a data-lbl="contact-us:events" href="/fi/cloud/events/">Tapahtumat</a></li> <li><a data-lbl="contact-us:news" href="/fi/news/">Uutiset</a></li> <li><a data-lbl="contact-us:oci-blog" href="https://blogs.oracle.com/cloud-infrastructure/">OCI-blogi</a></li> </ul> </div> </div> <div class="u10w4"><hr /></div> </nav> <div class="u10w11"> <ul class="u10-cr"> <li class="u10mtool" id="u10cmenu"><a data-lbl="country-region" class="u10ticon u10regn" href="/fi/menu-content/universal.html#u10countrymenu" data-lbl="country-region">Maa/alue</a></li> </ul> <nav class="u10w5 u10w10" aria-label="Sivuston tiedot"> <ul class="u10-links"> <li><a data-lbl="copyright" href="/fi/legal/copyright/">© 2025 Oracle</a></li> <li><a data-lbl="terms-of-use-and-privacy" href="/fi/legal/privacy/">K盲ytt枚ehdot ja tietosuoja</a></li> <li><div id="teconsent"></div></li> <li><a data-lbl="ad-choices" href="/fi/legal/privacy/privacy-policy/#adchoices">Mainosvalinnat</a></li> <li><a data-lbl="careers" href="/fi/corporate/careers/">Ty枚paikat</a></li> </ul> </nav> <nav class="u10scl" aria-label="Sosiaalisen median linkit"> <ul class="scl-icons"> <li class="scl-facebook"><a data-lbl="scl-icon:facebook" href="https://www.facebook.com/Oracle/" target="_blank" title="Oracle on Facebook"></a></li> <li class="scl-twitter"><a data-lbl="scl-icon:twitter" href="https://twitter.com/OracleNordics" target="_blank" title="Follow Oracle on X (formerly Twitter)"></a></li> <li class="scl-linkedin"><a data-lbl="scl-icon:linkedin" href="https://www.linkedin.com/company/oracle/" target="_blank" title="Oracle on LinkedIn"></a></li> <li class="scl-youtube"><a data-lbl="scl-icon:you-tube" href="https://www.youtube.com/oracle/" target="_blank" title="Watch Oracle on YouTube"></a></li> </ul> </nav> </div> </footer> <!-- /U10v6 --> <!-- END: oWidget_C/_Raw-Text/Display --> </div> <!-- Container/Display Start --> <!-- BEGIN: oWidget_C/_Raw-Text/Display --> <!-- Start - End Body Admin Container --> <!-- Start SiteCatalyst code --> <script type="text/javascript" data-reqjq data-src="/asset/web/analytics/ora_ocom.js"></script> <!-- End SiteCatalyst code --> <!-- End - End Body Admin Container --> <!-- END: oWidget_C/_Raw-Text/Display --> <!-- Container/Display end --> <!-- end : ocom/common/global/components/framework/layoutAssetEndBodyInfo --> </body> <!-- end : Framework/Redwood2 --> </html>