Skip to content

antony@notes:~/container$ cat "Docker-軟體貨櫃-Appciation-container.md"

Docker 軟體貨櫃 (Appciation container)

2021-10-24· container ·Docker

Docker 軟體貨櫃 (Appciation container)

  • Docker Engine:
    • 是Docker的daemon
    • 功能是提供container Network
  • “>“就是命令模式
  • 透過docker這個命令對Docker Engine告訴他說,你來幫我做container的維運
  • container的維運有4個動作:
    • 新增 (創建container)
    • 修改 (對container內部的內做動態的修改)
    • 刪除 (刪除container)
    • 查詢 (看有幾台container)
  • shim:中文翻做墊片
  • runc把container產生完以後,程式就不run了,所以containerd沒辦法掌握runc產生的container的資訊,為了得知container的狀態,containerd會針對這台新創的container再啟動一個程式,也就是shim(墊片程式),來監控container,這個墊片程式會定時跟containerd回報,目前的container他的執行狀態,事實上containerd也是來扮演管理跟維運的角色,containerd所提供的功能list,就是得到shim的回報。
  • 實務應用上就是企業所開發的應用系統

NAT

  • NAT 的全名是 Network Address Translation
  • 主要功能是提供內部私有IP轉換成外部IP可以正常連線上網,NAT機制:
    • 封包偽裝(IP masquerade):可以將私有 IP(內部 IP)改變成真實 IP(外部 IP)再傳送到網際網路,使網路上的人無法得知私有網路的 IP 分配情形而增加網路安全性。
    • 封包轉送:封包轉送是外網向NAT丟封包後,再由NAT依偽裝時的產生的紀錄再轉傳至子網路,相反路徑(由內網向外網丟封包)也是一樣,使用NAT轉址必須要開啟封包轉送。
    • 封包過濾:外面封包不是內部虛擬機請求的,遇到實體網卡被擋下來

docker run --rm -d quay.io/cloudwalker/alpine sleep 120

  • sleep 120 這個程式檔一定要存在quay.io/cloudwalker/alpine這個image的rootfs目錄區裡面
  • -d : 推到背景去run
  • --rm : 測試用的參數,只要這個container一關閉,也就是sleep睡醒了,--rm就會自動把container刪除。

bigred@alp:~$ docker search busybox
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
busybox                   Busybox base image.                             2362      [OK]
progrium/busybox                                                          70                   [OK]
radial/busyboxplus        Full-chain, Internet enabled, busybox made f…   43                   [OK]
yauritux/busybox-curl     Busybox with CURL                               16
arm32v7/busybox           Busybox base image.                             10
armhf/busybox             Busybox base image.                             6
odise/busybox-python                                                      4                    [OK]
odise/busybox-curl                                                        4                    [OK]
arm64v8/busybox           Busybox base image.                             3
s390x/busybox             Busybox base image.                             2
prom/busybox              Prometheus Busybox Docker base images           2                    [OK]
i386/busybox              Busybox base image.                             2
aarch64/busybox           Busybox base image.                             2
p7ppc64/busybox           Busybox base image for ppc64.                   2
arm32v6/busybox           Busybox base image.                             2
joeshaw/busybox-nonroot   Busybox container with non-root user nobody     2
mips64le/busybox          Busybox base image.                             1
spotify/busybox           Spotify fork of https://hub.docker.com/_/bus…   1
ppc64le/busybox           Busybox base image.                             1
vukomir/busybox           busybox and curl                                1
lqshow/busybox-curl       Busybox image adds a curl binary to /usr/bin    1                    [OK]
arm32v5/busybox           Busybox base image.                             0
amd64/busybox             Busybox base image.                             0
concourse/busyboxplus                                                     0
emccorp/busybox           Busybox                                         0
  • busybox前面沒有”/“是光碟片原廠自己做的image
  • 光片中心/帳號or機構or類別/光碟片名稱 : tags (通常是版本)

hub.docker.com 帳號:ncue 密碼:ya678kevi4


bigred@alp:~$ docker run --name a1 -it quay.io/cloudwalker/alpine sh
/ # busybox | grep httpd
/ #
  • Docker Alpine Image 內建的 busybox 並沒提供 httpd 功能
tags: Docker