{"id":3439,"date":"2017-09-02T07:00:32","date_gmt":"2017-09-02T05:00:32","guid":{"rendered":"http:\/\/vm.piszki.pl\/?p=3439"},"modified":"2017-09-01T13:42:04","modified_gmt":"2017-09-01T11:42:04","slug":"vsphere-integrated-containers-1-1-1-tworzymy-wlasny-bazowy-obraz-i-ladujemy-go-do-harbor","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=3439","title":{"rendered":"vSphere Integrated Containers 1.1.1 &ndash; tworzymy w\u0142asny, bazowy obraz i \u0142adujemy go do Harbor."},"content":{"rendered":"<p align=\"justify\">O tym jak zainstalowa\u0107 i skonfigurowa\u0107 vSphere Integrated Containers pisa\u0142em niedawno <a href=\"https:\/\/vm.piszki.pl\/vsphere-integrated-containers-1-1-1-instalacja-i-konfiguracja\/\">tutaj<\/a> (lektura obowi\u0105zkowa). Dzisiaj stworzymy w\u0142asny, bazowy obraz kontenera (z systemem CentOS 7) z dowoln\u0105 aplikacj\u0105, za\u0142adujemy go do rejestru (lokalne repozytorium obraz\u00f3w) na Harbor. Dodatkowo stworzymy sta\u0142y wolumen kt\u00f3ry pod\u0142\u0105czymy do naszego nowego kontenera. Temat VIC jest do\u015b\u0107 nowy, st\u0105d nie wiele w Internecie jest informacji na tematy z nim zwi\u0105zane, artyku\u0142 ten powsta\u0142 jako pr\u00f3ba usystematyzowania wiedzy z nim zwi\u0105zanej.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc8.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"doc8\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc8_thumb.png\" alt=\"doc8\" width=\"451\" height=\"171\" border=\"0\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">Czemu mamy stworzy\u0107 w\u0142asny bazowy obraz systemu CentOS 7 skoro na Docker Hub jest dost\u0119pny od r\u0119ki? Wszystkie obrazy z huba s\u0105 wyczyszczone do zera, nie znajdziemy tam tak prostych rzeczy jak edytor vim, mc, wget i innych a kt\u00f3re czasem si\u0119 przydaj\u0105. Nie m\u00f3wi\u0105c ju\u017c o yum za pomoc\u0105 kt\u00f3rego mo\u017cna zaktualizowa\u0107 np. apache. Oczywi\u015bcie stawiaj\u0105c w\u0142asne aplikacje b\u0119dziemy pos\u0142ugiwa\u0107 si\u0119 w\u0142asnymi obrazami, warto wiedzie\u0107 jak je tworzy\u0107 i zarz\u0105dza\u0107 nimi w \u015brodowisku vSphere za pomoc\u0105 Harbor i Admiral. Aby zrobi\u0107 bazowy obraz, b\u0119dziemy potrzebowali maszyny z systemem CentOS 7. Wykonujemy nast\u0119puj\u0105ce polecenia:<\/p>\n<p><span style=\"background-color: #ffffff; font-size: small;\"><strong>export image=\/image\/rootfs<br \/>\nmkdir -p $image<br \/>\ninitialize rpm database<br \/>\nrpm &#8211;root $image &#8211;initdb<\/strong><\/span><\/p>\n<p><span style=\"background-color: #ffffff; font-size: small;\"><strong>yum reinstall &#8211;downloadonly &#8211;downloaddir . centos-release<br \/>\nrpm &#8211;root $image -ivh centos-release*.rpm<br \/>\nrpm &#8211;root $image &#8211;import\u00a0 $image\/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-CentOS-7<\/strong><\/span><\/p>\n<p><span style=\"background-color: #ffffff; font-size: small;\"><strong>yum -y &#8211;installroot=$image &#8211;setopt=tsflags=&#8217;nodocs&#8217; &#8211;setopt=override_install_langs=en_US.utf8 install yum<\/strong><\/span><\/p>\n<p><span style=\"background-color: #ffffff; font-size: small;\"><strong>sed -i &#8222;\/distroverpkg=centos-release\/a override_install_langs=en_US.utf8\\ntsflags=nodocs&#8221; $image\/etc\/yum.conf<\/strong><\/span><\/p>\n<p><span style=\"background-color: #ffffff; font-size: small;\"><strong>cp \/etc\/resolv.conf $image\/etc<br \/>\nchroot $image \/bin\/bash &lt;&lt;EOF<br \/>\nyum install -y procps-ng iputils vi mc bindutils wget curl<br \/>\nyum clean all<br \/>\nEOF<br \/>\nrm -f $image\/etc\/resolv.conf<\/strong><\/span><\/p>\n<p align=\"justify\">Je\u015bli potrzebujemy proxy to ustawiamy je wewn\u0105trz pliku $image\/etc\/yum.conf. W ten spos\u00f3b mamy przygotowany wyj\u015bciowy obraz, na maszynie instalujemy dockera, uruchamiamy go i importujemy nasz obraz. Nast\u0119pnie uruchamiamy kontener i sprawdzamy czy wszystko dzia\u0142a.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"doc2\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc2_thumb.png\" alt=\"doc2\" width=\"562\" height=\"115\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Nasz kontener dzia\u0142a poprawnie (na razie lokalnie na maszynie gdzie zosta\u0142 zrobiony), aby uruchomi\u0107 go na VCH musimy go wcze\u015bniej za\u0142adowa\u0107 do Harbor. Na maszynie linuksowej tworzymy katalog z nazw\u0105 maszyny do kt\u00f3rego wgrywamy plik ca.crt kt\u00f3rym podpisany jest certyfikat wystawiony dla Harbor (patrz pierwszy artyku\u0142 o <a href=\"https:\/\/vm.piszki.pl\/vsphere-integrated-containers-1-1-1-instalacja-i-konfiguracja\/\">VIC<\/a>). Nast\u0119pnie logujemy si\u0119 do Harbor aby sprawdzi\u0107 czy komunikacja jest poprawna.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"doc3\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc3_thumb.png\" alt=\"doc3\" width=\"560\" height=\"126\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Je\u015bli wszystko jest ok, mo\u017cemy przegra\u0107 obraz z lokalnego repozytorium do Harbor (polecenie docker push). W zdalnym repozytorium jest stworzony domy\u015blny projekt o nazwie library kt\u00f3rego u\u017cyjemy.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc4.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"doc4\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc4_thumb.png\" alt=\"doc4\" width=\"557\" height=\"58\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Je\u015bli wszystko jest ok, to przepychamy (docker pull) obraz kontenera z Harbor do VCH (VMware Container Host) i sprawdzamy czy obraz jest poprawnie widoczny.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc5.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"doc5\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc5_thumb.png\" alt=\"doc5\" width=\"562\" height=\"117\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Zanim uruchomimy kontener to wygenerujemy sta\u0142y (persistent) volumen i pod\u0142\u0105czymy go pod kontener.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc6.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"doc6\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc6_thumb.png\" alt=\"doc6\" width=\"567\" height=\"38\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Widok od strony VIC:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc7.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"doc7\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/09\/doc7_thumb.png\" alt=\"doc7\" width=\"549\" height=\"327\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Mamy uruchomiony w\u0142asny kontener z systemem CentOS 7 z pod\u0142\u0105czonym sta\u0142ym wolumenem w katalog \/etc, dzi\u0119ki czemu efekty naszej pracy nie znikn\u0105 po restarcie kontenera. Oczywi\u015bcie ca\u0142a przeprowadzona tutaj procedura to tylko przyk\u0142ad mo\u017cliwo\u015bci jakie niesie ze sob\u0105 vSphere Integrated Containers.<\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>O tym jak zainstalowa\u0107 i skonfigurowa\u0107 vSphere Integrated Containers pisa\u0142em niedawno tutaj (lektura obowi\u0105zkowa). Dzisiaj stworzymy w\u0142asny, bazowy obraz kontenera (z systemem CentOS 7) z dowoln\u0105 aplikacj\u0105, za\u0142adujemy go do rejestru (lokalne repozytorium obraz\u00f3w) na Harbor. Dodatkowo stworzymy sta\u0142y wolumen &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=3439\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3424,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[6,45],"tags":[120,121,119],"class_list":["post-3439","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lab","category-poradniki","tag-docker","tag-vch","tag-vic"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3439"}],"collection":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3439"}],"version-history":[{"count":2,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3439\/revisions"}],"predecessor-version":[{"id":3441,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3439\/revisions\/3441"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/media\/3424"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}