Image 完整名字是 Registry-Namespace-Repository-Tag

你每天打的 nginx 是大幅省略後的簡寫,完整格式四段、三段可省略。

registry.example.com / my-team / my-app : 1.4.2
      ↑                   ↑          ↑       ↑
   REGISTRY          NAMESPACE  REPOSITORY  TAG
 省略=docker.io   省略=library    必填    省略=latest
 
nginx ≡ docker.io/library/nginx:latest

Registry vs Repository(常見面試題)

  • Registry = 倉庫服務,整個站台(Docker Hub、AWS ECR、GitLab Registry)
  • Repository = 同一個應用的所有版本集合(nginx repo 裡有 1.25、1.24、alpine…各種 tag)

Registry 裝 Repository,Repository 裝同一個 App 的不同版本。理解這個就不會被 myname/myapp 這種寫法困惑。

私有 Registry

公司程式碼不會放公開 Docker Hub。常見選擇:AWS ECR、Google Artifact Registry、Azure ACR、GitLab/GitHub Registry(跟版控與 CI 天然整合)、Harbor/Nexus(自架,地端與金融業常見)。

docker login registry.gitlab.com
docker pull registry.gitlab.com/team/app:1.0

tag 該怎麼選見 正式環境不要用 latest tag