docker镜像仓库

镜像仓库负责存储,管理和分发镜像,并且提供了登录认证的能力,建立了仓库的索引。镜像仓库管理多个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
  • 注册阿里云,在容器镜像服务里创建个人版实例。

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

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

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

相关推荐
杨浦老苏4 小时前
家庭实验室监控仪表盘HomeLab-Monitor
运维·docker·监控·群晖
回忆2012初秋5 小时前
【Nginx】原理、配置与运维实战(2)
运维·nginx·策略模式
Urbano6 小时前
工装外套全制作流程、工序痛点及自动化设备升级方案
运维·自动化
映翰通朱工6 小时前
工业4G网关无公网IP远程运维实战(内网终端异地访问方案)
运维·服务器·网络·安全·智能路由器
洪晓露6 小时前
将 rke2 集群证书延长至 10 年
运维·服务器·数据库
谢平康7 小时前
解决用 rm 报bash: /usr/bin/rm: Argument list too long错
linux·运维·运维开发
IP老炮不瞎唠7 小时前
Python 价格监控如何实现?思路与实用方法分享
运维·服务器·网络
GIS数据转换器7 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
Tokai_Teio_18 小时前
第四届黄河流域 misc
运维·服务器
开发者联盟league8 小时前
使用k8s安装Sonarqube
云原生·容器·kubernetes