天天看點

天天在搗鼓Docker,你是否真正的把握住了?

📢Docker本身并不是容器,它是建立容器的工具,是應用容器引擎。

📢想要搞懂Docker,兩句口号就行。

第一句是“Build, Ship and Run”(搭建、發送、運作,三闆斧)

第二句是“Build once,Run anywhere”(搭建一次,到處能用)

1️⃣💭虛拟機和Docker的對比

  • 虛拟機屬于虛拟化技術,Docker這樣的容器技術。
  • 虛拟機雖然可以隔離出很多“子電腦”,但占用空間更大,啟動更慢,虛拟機軟體可能還要花錢(例如VMWare)。而容器技術恰好沒有這些缺點,它不需要虛拟出整個作業系統,隻需要虛拟一個小規模的環境(類似“沙箱”)。
天天在搗鼓Docker,你是否真正的把握住了?
天天在搗鼓Docker,你是否真正的把握住了?

2️⃣💬Docker元件

  • 用戶端、主控端、倉庫
  • images、Container、Registry
天天在搗鼓Docker,你是否真正的把握住了?

Image

image是分層的,并且每一層都可以添加改變删除檔案,成為一個新的image。不同的image可以共享相同的layer。image本身是read-only的。

天天在搗鼓Docker,你是否真正的把握住了?

Container

Container由image建立,并在image layer上建立一可讀寫的Container layer(R/W層)。Writeble Container層的讀寫操作僅是記錄,并不會對下面的read-only Image産生影響。

天天在搗鼓Docker,你是否真正的把握住了?

Registry

倉庫,用于存放鏡像的地方(分為公有和私有倉庫)。可以直接使用docker pull指令将倉庫中的鏡像拉到本地,預設的倉庫Docker的官方倉庫Docker Hub Registry。

3️⃣🎈Docker指令總覽

能把下面兩幅圖上的指令全都看懂并且會操作說明都把握住了😚
天天在搗鼓Docker,你是否真正的把握住了?
天天在搗鼓Docker,你是否真正的把握住了?

4️⃣🍉DockerFile指令

DockerFile建構屬于自己的最完美的鏡像
天天在搗鼓Docker,你是否真正的把握住了?
天天在搗鼓Docker,你是否真正的把握住了?
官方的Centos7為例
FROM scratch
ADD centos-7-x86_64-docker.tar.xz /

LABEL \
    org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20201113" \
    org.opencontainers.image.title="CentOS Base Image" \
    org.opencontainers.image.vendor="CentOS" \
    org.opencontainers.image.licenses="GPL-2.0-only" \
    org.opencontainers.image.created="2020-11-13 00:00:00+00:00"

CMD ["/bin/bash"]      

📢下一篇文章帶兄弟們一起學習Docker更深層的東西,看看年薪20W的工程師是怎樣用的。

📢歡迎點贊 👍 收藏 ⭐留言 📝 如有錯誤敬請指正!

📢未來很長,值得我們全力奔赴更美好的生活✨

繼續閱讀