Sahte değil! Sizi hızla Docker'ın kapısına çekin | Kuvvet Projesi

Yazar | Masada Mingyue

Sorumlu Editör | Yu Yan

Üretildi | CSDN (ID: CSDNnews)

Önsöz

Bir şeyi öğrenmek için önce onu nasıl kullanacağınızı anlamalısınız. Ve onu kullanan bazı işletim terimleri. Bu bir araba öğrenmek için sürücü kursuna gitmek gibidir.Koç önce size bunun direksiyon simidi olduğunu, bu gaz pedalının ve bunun da fren olduğunu söyler.Kritik anlarda hayatınızı kurtarabileceğinizi unutmamalısınız. Sonra size arabayı nasıl çalıştıracağınızı ve yavaşça koşacağınızı öğretmeye başlayın. Bu makale, Docker'ın Demo düzeyindeki işlemlerin basit kullanımını hızlı bir şekilde anlamak için SpringBoot'u dağıtmak için Docker'ı kullanır. Bu belgeyi yeni başlayanlara vermek istiyorum.

Bu makale sayesinde şunları öğreneceksiniz:

  • Docker ve Docker terminolojisi nedir

  • Docker kurulumu

  • Hızlıca SprngBoot projeleri oluşturun

  • SprngBoot projesi Dockerization

  • Docker'ı ve ilgili terimleri anlayın

    Docker, programları izole eden ve paketleyen bir konteyner teknolojisidir ve aynı zamanda "hafif" sanallaştırma teknolojisi olarak da bilinir.

    Docker söz konusu olduğunda, üç bilgi noktasından bahsetmemiz gerekiyor: Ayna, konteyner, depo Docker'ın öğrenmesi gereken üç öğe, özel kodları ne anlama geliyor? Dinle bana yavaş yavaş söyle.

    Ayna: Bir kök dosya sistemine eşdeğerdir. Örneğin, resmi ayna ubuntu: 16.04, Ubuntu 16.04 minimal sisteminin kök dosya sisteminin eksiksiz bir setini içerir. Konteyneri başlatmak için bir şablon olarak anlaşılabilir

    konteyner : Konteyner aslında özel bir süreçtir. Docker, süreç için bağımsız bir alanı böler

    depo : Ayna görüntülerini depolamaya ayrılmış bir depo olarak anlaşılabilecek ayna görüntülerini depolamak için kullanılır.

    Görüntü (Görüntü) ve kap (Konteyner) arasındaki ilişki, nesne yönelimli programlamada bir sınıf ve örnek gibidir Görüntü statik bir tanımdır ve kapsayıcı, çalışma zamanında görüntünün varlığını ifade eder. Konteynerler oluşturulabilir, başlatılabilir, durdurulabilir, silinebilir, askıya alınabilir vb.

    Dockerfile: Derleme dosyası aracılığıyla özel bir görüntü oluşturabilirsiniz.

    Gerçek işlem

    Docker'ı yükleyin

    Bir hesap kaydetmeniz gerekmesi koşuluyla, indirme ve kurulum için kurulum paketini indirmek için doğrudan https://hub.docker.com/ adresine gidebilirsiniz. Ayrıca çaylağın kurulum eğitimine de doğrudan başvurabilirsiniz:

    Windows kurulum eğitimi: https://www.runoob.com/docker/windows-docker-install.html

    Win7, win8 ve win10 sistemlerinin kurulum yapılandırması farklıdır, ayrıntılar için lütfen çaylak kurulum eğitimine bakın

    MacOS Docker kurulumu: https://www.runoob.com/docker/macos-docker-install.html

    Çaylak öğretici Mac kurulum öğreticisinin iki kurulum paketi bağlantısı sağladığına dikkat edilmelidir: kenar ve kararlı Bu iki kurulum paketi arasındaki farklar aşağıdaki gibidir:

    kenar: erken benimseyen sürümü ayda bir yayınlanır, bazı sorunlar olabilir

    kararlı: kararlı sürüm, nispeten kararlı sürüm olarak her çeyrek güncellenir

    Yeni başlayanlar, kurulum için kararlı indirmeyi önerir.

    Docker görüntü hızlandırmayı yapılandırın

    Görev çubuğundaki docker simgesine tıklayın ve ardından Ayarlar'a tıklayın ve aşağıdaki şekilde gösterildiği gibi görüntü hızlandırma adresini yapılandırın.

    Diğer sistem yapılandırma yöntemleri için lütfen çaylak eğitimine bakın:

    https://www.runoob.com/docker/docker-mirror-acceleration.html

    İsteğe bağlı ayna hızlandırma adresleri aşağıdaki gibidir:

    • Docker tarafından sağlanan resmi Çin ayna kitaplığı adresi: https://registry.docker-cn.com

    • Qiniu bulut hızlandırıcı adresi: https://reg-mirror.qiniu.com

    • NetEase'in yansıtma adresi:

    • Alibaba Cloud Mirror Adresi: Her Alibaba Cloud hesabı benzersiz bir adres sağlar

    SpringBoot projesini derleyin ve Dockerize edin

    Adım 1: Bir maven projesi oluşturun ve ardından SpringBoot'un Ebeveyn bağımlılığını tanıtın.

    < ebeveyn > < Grup kimliği > org.springframework.boot < /Grup kimliği > < artifactId > Spring-boot-starter-ebeveyn < / artifactId > < versiyon > 2.1.0. YAYIN < / version > < göreceli yol/ > < / ebeveyn >

    Adım 2: SpringBoot web stateri bağımlılığını tanıtın.

    < bağımlılık > < Grup kimliği > org.springframework.boot < /Grup kimliği > < artifactId > Spring-boot-starter-web < / artifactId > < /bağımlılık >

    Adım 3: SpringBoot projesinin yürütülebilir jar paketinin adını yapılandırmak için finalName etiketini derleme etiketine ekleyin. Spesifik kod aşağıdaki gibidir:

    < finalName > demo < / finalName >

    Pom.xml'nin özel içeriği aşağıdaki gibidir:

    < ? xml version = "1.0" encoding = "UTF-8"? > < proje xmlns = " xmlns: xsi = " xsi: schemaLocation = "http: // maven.apache.org/POM/4.0.0 " > < modelVersion > 4.0.0 < / modelVersion > < ebeveyn > < Grup kimliği > org.springframework.boot < /Grup kimliği > < artifactId > Spring-boot-starter-ebeveyn < / artifactId > < versiyon > 2.1.0. YAYIN < / version > < göreceli yol/ > < ! - depodan ebeveyn araması - > < / ebeveyn > < Grup kimliği > org.example < /Grup kimliği > < artifactId > demo < / artifactId > < versiyon > 1.0-SNAPSHOT < / version > < bağımlılıklar > < bağımlılık > < Grup kimliği > org.springframework.boot < /Grup kimliği > < artifactId > Spring-boot-starter-web < / artifactId > < /bağımlılık > < bağımlılık > < Grup kimliği > org.springframework.boot < /Grup kimliği > < artifactId > yay önyükleme başlangıç testi < / artifactId > < dürbün > Ölçek < /dürbün > < /bağımlılık > < / bağımlılıklar > < inşa etmek > < finalName > demo < / finalName > < eklentiler > < Eklenti > < Grup kimliği > org.springframework.boot < /Grup kimliği > < artifactId > Spring-boot-maven-eklentisi < / artifactId > < /Eklenti > < ! - 5. jdk'yi belirtmek için eklenti ekleyin - > < Eklenti > < artifactId > maven-derleyici eklentisi < / artifactId > < konfigürasyon > < kaynak > 1.8 < /kaynak > < hedef > 1.8 < /hedef > < çatal > doğru < /çatal > < / configuration > < /Eklenti > < / plugins > < /inşa etmek > < / proje >

    Adım 4: SpringBoot'un başlangıç sınıfını oluşturun src / main / java dizininde, özel kod aşağıdaki gibidir:

    paket cn.zhuoqianmingyue.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplicationpublic sınıfı DemoApplication { public static void main (String argümanları) {SpringApplication.run (DemoApplication.class, args);} }

    Adım 5: Test için bir Kontrolör oluşturun. Spesifik kod aşağıdaki gibidir:

    paket cn.zhuoqianmingyue.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestControllerpublic class HelloDockerController {@GetMapping ("/ hello") public String merhaba {return "merhaba docker";}}

    Adım 6: Demo projesinde bir Dockerfile oluşturun, belirli içerik aşağıdaki gibidir:

    # FROM Özel ayna, java: 8 aynasına göre oluşturulur. JAVA'DAN: 8 # MAINTAINER Yazarın bilgileri BAKICI zhuoqianmingyue ljk126wy@126.com# KOPYALA Hedef dizindeki demo.jar dosyasını özel görüntüye kopyalayın. COPY target / demo.jar /demo.jar# Çalışan program tarafından yürütülen komut, komut penceresinde java -jar demo.jarENTRYPOINT komutunun çalıştırılmasına eşdeğerdir.

    Adım 7: Demo projesinde imajı oluşturmak için build.sh betiğini oluşturun. Spesifik içerik aşağıdaki gibidir:

    #! / usr / bin / env bash # SpringBoot projesi mvn paketini paketleyin # Bir ayna docker build -t demosu oluşturun: geçerli dizindeki Dockerfile yapılandırma dosyasına göre en son.

    demo: latest: demo görüntünün adını, en yenisi sürüm numarasını temsil eder.

    Projenin dizin yapısı aşağıda gösterilmiştir:

    Adım 8: Build.sh öğesini seçin ve ardından komut dosyasını çalıştırmak için sağ tıklayıp Build.sh çalıştır öğesini seçin.

    Yürütmeden sonra, oluşturulan görüntüyü docker görüntüleri aracılığıyla görüntüleyebilirsiniz.

    Demo: en son görüntü aracılığıyla bir kapsayıcı başlatma komutu aşağıdaki gibidir:

    docker run -idt -p 8080: 8080 demo: en son

    docker run, kapsayıcıyı çalıştırmak için görüntüye dayanır

    • -i Konteyneri genellikle -t ile birlikte kullanılan etkileşimli modda çalıştırın.

    • -t, genellikle -i ile kullanılan bir sözde giriş uçbirimini konteyner için yeniden atar.

    • -d Kapsayıcıyı arka planda çalıştırın ve kapsayıcı kimliğini döndürür.

    • -p Bağlantı noktası eşlemesini belirtir, biçim şu şekildedir: ana bilgisayar (ana bilgisayar) bağlantı noktası: konteyner bağlantı noktası.

    • demo: en son görüntü adı: görüntü sürüm numarası.

    docker ps çalışan görüntüyü görüntüleyin

    • CONTAINER_ID: Kapsayıcı Kimliği

    • GÖRÜNTÜ: belirli görüntü

    • COMMOND: Çalışan program tarafından yürütülen komut

    • DURUM: kabın durumu

    • PORTS: Konteyner tarafından eşlenen bağlantı noktası

    • İSİMLER: konteynerin adı

    Docker günlüğü -f kapsayıcı kimliği aracılığıyla SpringBoot projesinin başlangıç günlüğünü görüntüleyin. Belirli işlemler aşağıdaki gibidir.

    Docker üzerinden bir konteyner başlatan Windows, bir Linux sanal makinesi oluşturmak ve programımızı sanal makinede çalıştırmak olarak anlaşılabilir. Konteynere docker exec -it container ID / bin / bash (Linux'un sanal makinesine girmek olarak da anlaşılabilir) üzerinden girebilirsiniz. SpringBoot projesine sanal makinede yerel olarak erişmek ve çalıştırmak için curl localhost: 8080 / hello çalıştırın. Belirli işlemler aşağıdaki gibidir:

    Docker, bir Linux sanal makinesi oluşturmaya eşdeğer olduğundan, yerel ana bilgisayarı doğrudan tarayıcı üzerinden çalıştırarak erişilemez. Bu problem nedeniyle, Baidu'nun girişinin çoğu, docker-machine ip default'u çalıştırarak sanal makinenin ipini görüntülemektir, ancak onu çalıştırdıktan sonra şuna benzer:

    Komut, docker-machine ls aracılığıyla kontrol etmemizi öneriyor, belirli işlemler aşağıdaki gibidir:

    Sanal makinenin ip'i docker-machine ile elde edilmemesine rağmen başka bir yöntemle elde ettim.Özel işlemler şu şekildedir:

    Docker sanal ana bilgisayarının ipini görüntülemek için ipconfig'i çalıştırın, belirli işlemler aşağıdaki gibidir:

    Ardından SpringBoot ile oluşturulmuş Demo projesine ip aracılığıyla erişin.

    Makinemin win1064-bit işletim sistemi olduğu unutulmamalıdır.

    Tüm işlemler burada tamamlandı! Ardından basit bir özet yapmaya başlayın.

    özet

    Bir SpringBoot Dockerize etmek için belirli adımlar aşağıdaki gibidir:

  • SpringBoot projesi oluştur

  • Özel bir görüntü oluşturmak için bir Dockerfile dosyası tanımlayın

  • Kapsayıcıyı özel bir görüntü ile başlatın.

  • Kapsayıcıdaki uygulamaların günlüklerini görüntüleyin ve çalışan programlara erişin

  • Görüntüler, kapsayıcılar ve Dockerfiles için yaygın olarak kullanılan işlem komutları aşağıdaki gibidir:

    Orijinal bağlantı:

    https://blog.csdn.net/ljk126wy/article/details/104275624

    Ağ ikileme için Beihang Üniversitesi ve SenseTime tarafından önerilen yeni IR-Net algoritması etkili midir?
    önceki
    Kodsuz çağın gelişiyle, programcılar işlerini nasıl sürdürebilirler?
    Sonraki
    Go dilinde ertelemenin geçmişi ve bugünü
    GitHub'ın ortadaki bir adam tarafından saldırıya uğradığından şüpheleniliyor ve en büyük karanlık web sunucusu tekrar saldırıya uğradı
    Huawei P40 "bir çocuk ve üç çocuk", en pahalı fiyat 10854 yuan
    Wechat, "dağıtım" işlevini küçük bir aralıkta başlattı; Luo Yonghao, Douyin ile özel bir sözleşme yaptığını duyurdu; Github sayfaları, ortadaki adam saldırısıyla karşılaşabilir | Geek Headlines
    Java'da kendi Kubernetes denetleyicinizi geliştirin, denemek ister misiniz?
    On milyonlarca ölçek kategorisi sınıflandırma teknolojisini destekleyen Baidu Feida, endüstriyel düzeyde bir derin öğrenme çerçevesi tanımlıyor
    Biz programcılar yazılım geliştirmeyi neden ciddiye almıyoruz?
    Dürüstlük ve saygı: Profesyonel güçlerle salgınla mücadeleye yardımcı olmak
    Kar yağıyor! Liaocheng'in Guanxian İlçesindeki on bin dönüm armut çiçeği tarlaları kaplayarak tamamen çiçek açmış durumda (Fotoğraflar)
    Qingdao Havaalanındaki tıbbi araştırma kabinini 48 saat içinde inşa edin! Çin İnşaat Sekizinci Bürosu Dördüncü Şirket Demir Ordu Savaş Salgını
    Hava sınıfı "Binzhou Modu"! 150 milyon sayfa görüntülemenin arkasında bir dizi terleme sayısı var
    Dün gece "çizin"! 10 milyon! ilk! Jackpot burada ...
    To Top