Docker Hub

Docker 官方维护了一个公共仓库,大约有上万个镜像,大多数情况下,我们可以直接使用该仓库中的镜像部署服务。

通过在 Docker Hub 注册账户,获得一个 dockerId,可能很多人在 Mac 版的 Docker 中看到登录时需要一个 dockerID,其实这个dockerId 就是登录账号。

在 Docker Hub 的 WEB 站点,可以搜索自己感兴趣的镜像,还可以查看镜像的参数,比如nginxmysql等,可以看到数据nginx html 页面保存的目录,端口配置,可以看到MySQL用户名和密码的设置参数等信息。

在 shell 窗口可以使用 docker login 交互式命令输入用户名和密码登录,也可以使用docker logout退出。

  • 搜索镜像
1
2
docker search {imageName}
# docker search nginx
  • 拉取镜像
1
2
docker pull {imageName}[:tagName]
docker pull nginx:latest
  • 推送镜像

注意,push 镜像必须要登录,其他命令不需要登录。如果不登录则会出现“denied: requested access to the resource is denied”的提示。用户可以通过docker push 用户名/镜像名[:标签名]的方式将自己的镜像推送到 Docker Hub。

这里有个小技巧,假设你的应用名称叫demo,即本地仓库的镜像是 demo。通过命令可以看到:

1
docker image ls

输出的内容如下:

1
2
3
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
demo latest f32a97de94e1 8 months ago 25.8MB
hello-world latest fce289e99eb9 11 months ago 1.84kB

可以看到有一个demo的镜像存在,我们现在要把这个demo推送到 Docker Hub,需要做下面的几个步骤:

1.镜像所属

1
docker tag demo:latest joyven/demo:latest 

2.查看新的镜像

1
docker image ls

3.push镜像

1
docker push joyven/demo:latest

自建仓库

1
docker run -d -p 5000:5000 --restart=always -v /data01/docker/registry:/var/lib/registry --name registry registry