镜像仓库负责存储,管理和分发镜像,并且提供了登录认证的能力,建立了仓库的索引。镜像仓库管理多个repository,repository通过命名来区分,比如说Ubuntu,nginx等,这些repository包含一个或者多个镜像,镜像通过镜像名称和tag来区分。
一个容器镜像包含两个部分,一个是元数据,其实就是由dockerfile构建出来的描述文件,描述这个容器blob数据的信息。最终的可执行文件存储在blob里面,真正占有空间的是blob。

镜像仓库命令
docker login:用于登录到一个docker镜像仓库,如果没有指定镜像仓库的地址,就默认为官方的dockerhub。
bash
docker login [options] [server]
-u表示登录的用户名
-p表示登录的密码
docker pull:用于从镜像仓库中拉取或者更新指定的镜像。
bash
docker pull [option] NAME[:TAG|@DIGEST]
-a表示拉取所有tagged镜像
--disable-content-trust表示忽略镜像的校验,默认是开启的
docker push:用于将本地的镜像上传到镜像仓库,在使用这个命令时,需要先登录到镜像仓库。
bash
docker push [options] NAME[:TAG]
-a表示推送所有的tagged镜像
--disable-content-trust表示忽略镜像的校验,默认是开启的
docker search:用于从dockerhub查找镜像。
bash
docker search [option] TERM
--no-trunc表示不截断,显示完整的镜像描述
-f <过滤条件>表示列出收藏数(star)不小于指定值的镜像
docker logout:用于登出一个docker镜像仓库,如果没有指定镜像仓库地址,就默认为官方仓库dockerhub。
bash
docker logout [server]
实操
搭建nginx
nginx可以作为一个http服务器进行网站的发布处理,也可以作为反向代理服务器进行负载均衡的实现(反向代理代理的是服务器端,正向代理代理的是客户端)。
- 安装nginx,查看nginx的状态,杀死nginx进程
bash
#Ubuntu下安装nginx
apt install nginx -y
#查看版本
nginx -v
#查看nginx是否启动
ps -ef | grep nginx
#如果没启动,手动启动
nginx
#调整配置
vim /etc/nginx/sites-available/default
#杀死nginx进程
ps -ef | grep nginx
kill -9 pid


- 查找nginx镜像,拉取nginx镜像,启动nginx站点
bash
docker pull nginx:latest
#查看本地的镜像
docker images
#运行镜像
docker run --name nginx1 --rm -it -p 8888:80 nginx:latest bash
#启动nginx
nginx

- 打开另外一个shell窗口执行curl命令,可以看到nginx的欢迎信息返回。

- 打开浏览器访问对应的8888端口,也可以成功访问到nginx。

搭建私有仓库(阿里云)
- 安装busybox,busybox是一个集成了300多个最常用的Linux命令和工具的软件,例如ls,cat,find等命令。
bash
apt install -y busybox
-
注册阿里云,在容器镜像服务里创建个人版实例。

-
创建完个人版实例以后,进入实例,在访问凭证里设置固定密码,底部会有登录实例的命令,执行此命令,输入固定密码即可登录仓库。

-
在阿里云上配置命名空间,创建镜像仓库,可以看到创建完以后,阿里云提供了快捷指令。

-
根据操作指南给镜像打标签,推送到仓库,可以看到镜像就被成功推送上去了。

