【Docker入门】Docker Registry(镜像仓库)

🚀 欢迎来到我的CSDN博客:Optimistic _ chen

一名热爱技术与分享的全栈开发者,在这里记录成长,专注分享编程技术与实战经验,助力你的技术成长之路,与你共同进步!


🚀我的专栏推荐

专栏 内容特色 适合人群
🔥C语言从入门到精通 系统讲解基础语法、指针、内存管理、项目实战 零基础新手、考研党、复习
🔥Java基础语法 系统解释了基础语法、类与对象、继承 Java初学者
🔥Java核心技术 面向对象、集合框架、多线程、网络编程、新特性解析 有一定语法基础的开发者
🔥Java EE 进阶实战 Servlet、JSP、SpringBoot、MyBatis、项目案例拆解 想快速入门Java Web开发的同学
🔥Java数据结构与算法 图解数据结构、LeetCode刷题解析、大厂面试算法题 面试备战、算法爱好者、计算机专业学生
🔥Redis系列 从数据类型到核心特性解析 项目必备

🚀我的承诺:

✅ 文章配套代码:每篇技术文章都提供完整的可运行代码示例

✅ 持续更新:专栏内容定期更新,紧跟技术趋势

✅ 答疑交流:欢迎在文章评论区留言讨论,我会及时回复(支持互粉)


🚀 关注我,解锁更多技术干货!
⏳ 每天进步一点点,未来惊艳所有人!✍️ 持续更新中,记得⭐收藏关注⭐不迷路 ✨

📌 标签:#技术博客#编程学习#Java#C语言#算法#程序员

文章目录

Docker Registry(镜像仓库)

Docker Registry(Docker仓库):直译过来就是Docker 仓库,因为这个仓库里面存放的是镜像,所以也叫镜像仓库。负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引。

镜像仓库管理多个Registry,仓库根据命名来区分,每个仓库包含一个或者多个镜像,镜像通过镜像名称和Tag(标签)来区分

镜像仓库:在拉取镜像时,我们通过DNS或IP地址定位镜像仓库 。每个仓库可以包含多个子仓库,并分为顶层仓库和用户仓库两种类型。其中,用户仓库的命名格式为"用户名/仓库名" 。每个仓库下包含多个Tag标签 ,每个标签对应一个具体的镜像版本

|-----------------------------------------------------------|
| 类比去超时购物,一个Registry就是一个货架,货架上有不同的品牌(镜像名称),每个品牌又有不同的厂家(Tag) |

镜像仓库工作机制

  1. 镜像仓库使用流程 :通过docker login登录仓库
               Docker pull 拉取需要的镜像
               通过commit等方式自定义镜像通过docker push上传到仓库
  2. Docker Registry 中的镜像通常由开发人员制作,而后推送至"公共"或"私有"Registry上保存,供其他人员使用。例如:部署到测试环境
  3. 镜像仓库的拉取机制 :启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从Registry 中下载该镜像并保存到本地。

Docker Registry命令

docker login 和 docker logout

docker login 功能登录到 一个Docker镜像仓库,如果未指定镜像仓库地址则默认使用官方仓库 Docker Hub(这个好像被封了,使用其他国内镜像也可以)

powershell 复制代码
docker login [options] [server]
  • -u:登录的用户名
  • -p:登录的密码

功能:登出一个Docker镜像仓库,如果未指定镜像仓库地址则默认使用官方仓库 Docker Hub

powershell 复制代码
docker logout [server]

docker pull

功能:从镜像仓库中拉取或者更新指定镜像

powershell 复制代码
docker pull [options] name [:tag|@digest]
  • -a :拉取所有tag镜像
  • --disable-content-truet:忽略镜像校验,默认开启

docker push

功能:将本地镜像上传到镜像仓库,要先登录到镜像仓库

powershell 复制代码
docker push [options] name[:tag]
  • -a :拉取所有tag镜像
  • --disable-content-truet:忽略镜像校验,默认开启

注意:只有需要上传镜像才需要登录镜像仓库,其他操作不需要登录

注意:因为国内docker网站被封目前无法使用该命令,需要一点点"魔法"
功能:从 Docker Hub 查找镜像

powershell 复制代码
docker search [options] term
  • --on-trunc显示完整的镜像描述
  • -f<过滤条件>列出满足条件的镜像

搭建Nginx服务器

web服务器:一般指"网站服务器",是指驻留于互联网上某种计算机程序。

Nginx是一款开源的、高性能的HTTP服务器反向代理服务器;Nginx可以作为一个HTTP服务器进行网站发布处理,也可以作为反向代理进行负载均衡的实现。

Web服务器并非特指某个具体产品,而是对实现该功能的所有服务器的统称

|------------------------------------------------------------|
| Nginx就是Web服务器的一种具体实现方案,Nginx 作为 Web 服务器可以向各种浏览器等客户端提供浏览服务。 |

正向代理:由于国内外网络限制,我们不能直接访问google浏览器,但是可以借助VPN来实现,我们发现Nginx代理客户端访问google浏览器,而浏览器是不知道客户端是通过VPN来访问的。这个时候"代理的"是客户端。

反向代理:当我们想要访问百度时,请求要通过负载均衡来转发到百度服务器,这个过程对于客户端来说是看不见的。也就是说:这个时候反向代理的"代理"是服务器端。

开始安装Nginx

Ubuntu 安装

powershell 复制代码
apt update
apt install nginx -y
nginx -v


调整首页

powershell 复制代码
ll /etc/nginx/
cd /etc/nginx/
ll
cat nginx.conf
cd /var/www/html
ll
# 修改nginx首页
vi index.nginx-debian.html

拉取nginx镜像,启动nginx站点

想要查找具体的镜像,现在docker官方看不了,可以去国内的镜像源查找:比如:轩辕镜像

powershell 复制代码
docker pull nginx:1.24.0
# 查看是否拉取成功
docker images nginx

#查看当前nginx的详细信息
docker image inspect nginx:1.24.0


前台启动容器

powershell 复制代码
# 前台启动一个nginx容器
docker run -p 8099:80 --name mynginx1 -h mynginx1.com -e myenv=test nginx:1.24.0


浏览器也可以正常访问,但是一旦我们退出,就会销毁掉

powershell 复制代码
# 后台启动一个nginx
docker run -p 8099:80 --name mynginx4 -h mynginx1.com -e myenv=test -d nginx:1.24.0

出现容器ID,说明程序正常运行起来。

powershell 复制代码
#通过命令查看
docker ps


通过 it 交互的方式启动nginx

powershell 复制代码
# 通过 it 交互的方式启动nginx
docker run -p 8098:80 --name mynginx6 -h mynginx1.com -e myenv=test -it nginx:1.24.0 bash
powershell 复制代码
# 修改首页
cd /usr/share/nginx/html
echo "Hello i am in docker my port is 8098"> index.html


阿里云创建私有仓库

进入阿里云注册成功后,在产品搜索容器镜像服务,申请个人实例

闯创建后设置Registry密码,也就是 docker login密码,然后点击命名空间,创建镜像仓库,设置仓库为本地仓库,完成创建。


在Xsheel中登录自动阿里的镜像仓库:

powershell 复制代码
docker login --username=小张不嚣涨 crpi-2aypcteu5jaqco4g.cn-hangzhou.personal.cr.aliyuncs.com


给镜像打标签Tag,推送到仓库:

powershell 复制代码
docker tag nginx:1.23.3 crpi-2aypcteu5jaqco4g.cn-hangzhou.personal.cr.aliyuncs.com/optimistic/optimistic1:v1.0

docker push crpi-2aypcteu5jaqco4g.cn-hangzhou.personal.cr.aliyuncs.com/optimistic/optimistic1:v1.0


退出登录:再进行push就会显示无权限

powershell 复制代码
docker logout crpi-2aypcteu5jaqco4g.cn-hangzhou.personal.cr.aliyuncs.com

完结撒花!🎉

如果这篇博客对你有帮助,不妨点个赞支持一下吧!👍
你的鼓励是我创作的最大动力~

想获取更多干货? 欢迎关注我的专栏 → optimistic_chen

📌 收藏本文,下次需要时不迷路!

我们下期再见!💫 持续更新中......


悄悄说:点击主页有更多精彩内容哦~ 😊

相关推荐
JiMoKuangXiangQu2 小时前
Linux perf 子系统一览
linux·perf
凸头2 小时前
Nginx配置学习
运维·学习·nginx
xj7573065332 小时前
python中的序列化
服务器·数据库·python
中国lanwp2 小时前
RedHat/CentOS 系统中根目录作用说明
linux·运维·centos
码农水水2 小时前
阿里Java面试被问:Online DDL的INSTANT、INPLACE、COPY算法差异
java·服务器·前端·数据库·mysql·算法·面试
是Yu欸2 小时前
实时获取 Google 相关股票新闻并完成自动化总结
运维·爬虫·自动化·股票·新闻·亮数据·bringdata
乐亦_Lee2 小时前
在Ubuntu下如何提升下载速度
linux·嵌入式硬件·ubuntu
先做个垃圾出来………2 小时前
Linux/Unix系统下的基础文本处理命令
java·linux·unix
m0_737302582 小时前
柔性算力适配,华为云Flexus X破解硬件通胀困局
服务器