Docker Registry
它是所有仓库(包括共有和私有)以及工作流的中央Registry。
- Repositories(仓库)可以被标记为喜欢或者像书签一样标记起来
- 用户可以在仓库下评论。
- 私有仓库和共有仓库类似,不同之处在于前者不会在搜索结果中显示,也没有访问它的权限。只有用户设置为合作者才能访问私有仓库。
- 成功推送之后配置webhooks。
Docker Registry有三个角色,分别是index、registry和registry client。
- index:负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。它使用以下组件维护这些信息:
Web UI
元数据存储
认证服务
符号化
- Registry:镜像和图表的仓库。然而,它没有一个本地数据库,也不提供用户的身份认证,由S3、云文件和本地文件系统提供数据库支持。此外,通过Index Auth service的Token方式进行身份认证。Registries可以有不同的类型。现在让我们来分析其中的几种类型:
- Sponsor Registry:第三方的registry,供客户和Docker社区使用。
- Mirror Registry:第三方的registry,只让客户使用。
- Vendor Registry:由发布Docker镜像的供应商提供的registry。
- Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry。
- Registry Client:Docker充当registry客户端来负责维护推送和拉取的任务,以及客户端的授权。
其它的一些Docker命令
1. daemon:用于管理容器的后台进程。一般情况下,守护进程是一个长期运行的用来处理请求的进程服务。
-d
参数用于运行后台进程。
2. build:
使用Dockerfile来构建镜像。简单的构建命令如下:
docker build [options] PATH | URL
还有一些Docker提供的额外选项,如:--rm=true
表示构建成功后,移除所有中间容器--no-cache=false
表示在构建过程中不使用缓存
3. attach: Docker允许使用attach
命令与运行中的容器交互,并且可以随时观察容器內进程的运行状况。
退出容器可以通过两种方式来完成:
- Ctrl+C 直接退出
- Ctrl-\ 退出并显示堆栈信息(stack trace)
docker attach container
4. diff:Docker提供了一个非常强大的命令diff
,它可以列出容器内发生变化的文件和目录。这些变化包括添加(A-add)、删除(D-delete)、修改(C-change)。该命令便于Debug,并支持快速的共享环境。
docker diff container
5. events:打印指定时间内的容器的实时系统事件。
6. import:Docker可以导入远程文件、本地文件和目录。使用HTTP的URL从远程位置导入,而本地文件或目录的导入需要使用-
参数。从远程位置导入的语法是:
docker import http://example.com/example.tar
docker import -r 本地文件
7. export:类似于import
,export
命令用于将容器的系统文件打包成tar文件。
8. cp:从容器内复制文件到指定的路径上。
docker cp container:path hostpath
9. login: 登录到Docker registry服务器
docker login [options] [server]
docker login localhost:8080 # 登录自己主机的registry
10. inspect:收集有关容器和镜像的底层信息。包括:
- 容器实例的IP地址
- 端口绑定列表
- 特定端口映射的搜索
- 收集配置的详细信息
docker inspect container/image
11. kill:发送SIGKILL
信号来停止容器的主进程。
docker kill [options] container
12. rmi:移除一个或者多个镜像
docker rmi image
镜像可以有多个标签链接到它。在删除镜像时,你应该确保删除所有相关的标签以避免错误。
13. wait:阻塞对指定容器的其它调用方法,直到容器停止后退出阻塞。
docker wait container
14. load:从tar文件中载入镜像或仓库到STDIN
。
docker load -i xxx.tar
15. save:类似于load
,该命令保存镜像为tar文件并发送到STDOUT
。
docker save image