1 Docker Hub
1.1 简介和登陆
Docker Hub
是Docker
官方维护的一个公共仓库;- 注册网址为: https://hub.docker.com;
- 注册账号以后可以使用
docker login
进行登陆:
- 使用
docker logout
进行退出。
1.2 拉取镜像
- 使用
docker search
查找镜像;
noamanelson@noamanelson-Virtual-Machine:~$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 15954 [OK]
websphere-liberty WebSphere Liberty multi-architecture images … 294 [OK]
open-liberty Open Liberty multi-architecture images based… 59 [OK]
neurodebian NeuroDebian provides neuroscience research s… 99 [OK]
ubuntu-debootstrap DEPRECATED; use "ubuntu" instead 51 [OK]
ubuntu-upstart DEPRECATED, as is Upstart (find other proces… 114 [OK]
ubuntu/nginx Nginx, a high-performance reverse proxy & we… 91
ubuntu/cortex Cortex provides storage for Prometheus. Long… 3
ubuntu/squid Squid is a caching proxy for the Web. Long-t… 57
ubuntu/apache2 Apache, a secure & extensible open-source HT… 58
ubuntu/mysql MySQL open source fast, stable, multi-thread… 48
ubuntu/kafka Apache Kafka, a distributed event streaming … 31
ubuntu/bind9 BIND 9 is a very flexible, full-featured DNS… 51
ubuntu/redis Redis, an open source key-value store. Long-… 18
ubuntu/prometheus Prometheus is a systems and service monitori… 40
ubuntu/postgres PostgreSQL is an open source object-relation… 27
ubuntu/zookeeper ZooKeeper maintains configuration informatio… 5
ubuntu/grafana Grafana, a feature rich metrics dashboard & … 9
ubuntu/memcached Memcached, in-memory keyvalue store for smal… 5
ubuntu/prometheus-alertmanager Alertmanager handles client alerts from Prom… 8
ubuntu/dotnet-deps Chiselled Ubuntu for self-contained .NET & A… 8
ubuntu/dotnet-runtime Chiselled Ubuntu runtime image for .NET apps… 5
ubuntu/dotnet-aspnet Chiselled Ubuntu runtime image for ASP.NET a… 6
ubuntu/cassandra Cassandra, an open source NoSQL distributed … 2
ubuntu/telegraf Telegraf collects, processes, aggregates & w… 4
- 查找到有很多镜像,基本分为两类:一类是官方创建的,比如
OFFICIAL
下标识是OK
的;另一类是由由Docker Hub
的注册用户创建并维护的,往往带有用户名称前缀。 - 使用
docker pull
将镜像拉取到本地,比如拉取官方的ubuntu
:
1.3 推送镜像
- 命令为:
docker push
,将自己的镜像推送到Docker Hub
;
- 登陆后使用
docker search 用户名
查找用户下的镜像:
1.4 自动构建
- 使用场景为:
构建了镜像,安装了某个软件,当软件发布新版本则需要手动更新镜像。
- 说明:
自动构建允许用户通过 Docker Hub 指定跟踪一个目标网站(支持 GitHub 或 BitBucket)上的项目,一旦项目发生新的提交 (commit)或者创建了新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub中。
- 操作步骤:
1、登录 Docker Hub;
2、在 Docker Hub 点击右上角头像,在账号设置(Account Settings)中关联(Linked Accounts)目标网站;
3、在 Docker Hub 中新建或选择已有的仓库,在 Builds 选项卡中选择Configure Automated Builds ;
4、选取一个目标网站中的项目(需要含 Dockerfile )和分支;指定 Dockerfile 的位置,并保存。
2 私有仓库
2.1 简介
- 可以创建本地仓库供私人使用;
docker-registry
是官方提供的工具,可以用于构建私有的镜像仓库
2.2 安装docker-registry
- 命令:
docker run -d -p 5000:5000 --restart=always --name registry registry
说明:
1、使用官方的 registry 镜像来启动私有仓库;
2、默认情况,仓库会被创建在容器的/var/lib/registry 目录下;
3、使用-v参数修改默认地址:
` docker run -d
-p 5000:5000
-v /opt/data/registry:/var/lib/registry
registry
`
2.3 上传镜像
- 使用
docker tag
来标记一个镜像,然后推送它到仓库; - 比如将使用
docker tag
将ubuntu:latest
这个镜像标记为localhost/ubuntu:latest
:
- 使用
docker push
上传:
noamanelson@noamanelson-Virtual-Machine:~$ docker image rm 127.0.0.1:5000/ubuntu:latest
Error response from daemon: No such image: 127.0.0.1:5000/ubuntu:latest
noamanelson@noamanelson-Virtual-Machine:~$ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
noamanelson@noamanelson-Virtual-Machine:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest 65f3b3441f04 4 days ago 24MB
127.0.0.1:5000/ubuntu latest 3b418d7b466a 2 weeks ago 77.8MB
ubuntu latest 3b418d7b466a 2 weeks ago 77.8MB
ubuntu 18.04 3941d3b032a8 2 months ago 63.1MB
hello-world latest feb5d9fea6a5 19 months ago 13.3kB
noamanelson@noamanelson-Virtual-Machine:~$ docker push 127.0.0.1:5000/ubuntu:latest
The push refers to repository [127.0.0.1:5000/ubuntu]
b8a36d10656a: Pushed
latest: digest: sha256:8d741c3fb719fff7991700dbe988d1d549f32b3c24ae2276657f4a4ca0fbe42d size: 529
noamanelson@noamanelson-Virtual-Machine:~$
2.4 查看镜像
- 使用
curl
查看仓库中的镜像:
noamanelson@noamanelson-Virtual-Machine:~$ curl 127.0.0.1:5000/v2/_catalog
{"repositories":["ubuntu"]}
2.5 下载镜像
- 删除这个镜像:
- 使用
docker pull
下载: