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:latestRegistry vs Repository(常見面試題)
- Registry = 倉庫服務,整個站台(Docker Hub、AWS ECR、GitLab Registry)
- Repository = 同一個應用的所有版本集合(
nginxrepo 裡有 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.0tag 該怎麼選見 正式環境不要用 latest tag。