Docker镜像仓库

Docker Registry

🚀什么是镜像仓库(docker registry)呢?

docker registry 是负责存储,管理,分发镜像,并且提供了认证能力,建立了仓库的索引。最常用的docker registry就是docker hub了,在docker hub中存在多个镜像仓库(repos),例如nginx,Centos,Ubuntu镜像等等。

docker hub的简单实用

🚀首先进来是登录页面,也就是前面提到的docker registry要具有一定的认证能力,如果没有docker hub的账号可以点击右上方的sign up使用邮箱注册。
在这里插入图片描述
🚀登录进来点击Explore就可以看到各种的镜像仓库(repos)。
在这里插入图片描述
🚀进入到某个具体镜像的仓库中,查看它的tags,所谓的nginx:latest叫作它的镜像名称。
在这里插入图片描述
🚀当点击某个镜像名称就会进入到一个新的页面,里面介绍了这个镜像的许多属性信息,这就是某个具体的镜像。
在这里插入图片描述
🚀一个镜像对应的可执行文件,是被存储在服务器的磁盘上的,所谓的占用服务器磁盘空间的这些文件叫作blob。

镜像仓库分类

  • 共有仓库
    像docker hub这种放在公网上,可供任何人去下载镜像的仓库叫作共有仓库。像国内的阿里云,腾讯云也有其共有仓库。
  • 私有仓库
    不对外开放,往往位于私有网络中,只供内部人员使用,这样的仓库叫作私有仓库。

镜像仓库命令

docker login

🚀登录到一个镜像仓库

docker login [OPTIONS] [SERVER]
# 常用参数
-u #指定用户名
-p #密码
#docker login 默认登录的是docker hub这个镜像仓库,也可以指定登录其他镜像仓库

在这里插入图片描述

docker logout

🚀登出一个镜像仓库。

docker logout [SERVER] 
#如果没有指定,默认登出的是docker hub镜像仓库。

在这里插入图片描述

docker pull

🚀从镜像仓库中拉取某个镜像到本地,前提是登录上了某个镜像仓库(docker login)。

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
#常用选项
-a 拉取一个镜像仓库(repos)中所有版本的镜像
--disable-content-trust :忽略镜像的校验,默认开启
#常用方式
docker pull nginx:1.24.0 #拉取nginx:1.24.0版本到本地
#也可以使用它的签名进行拉取
docker pull nginx@sha256:d2e65182b5fd330470eca9b8e23e8a1a0d87cc9b820eb1fb3f034bf8248d37ee

digest
在这里插入图片描述
使用docker pull拉取镜像
在这里插入图片描述

docker push

🚀将本地镜像推送到远程镜像仓库中,前提是登录上了某个镜像仓库(docker login)。

docker push [OPTIONS] NAME[:TAG]
# 常用选项
-a :推送所有 tagged 镜像 
--disable-content-trust :忽略镜像的校验,默认开启

推送案例
对之前拉取下来的nginx,重新打一个标签,然后推送到远程仓库中。在docker hub中我们可以创建自己的镜像仓库(repos)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以在远程镜像仓库中看到刚刚推送的镜像

在这里插入图片描述

docker search

🚀从镜像仓库中查找镜像

docker search [OPTIONS] TERM
# 常用选项
--no-trunc :显示完整的镜像描述;
-f <过滤条件>:列出收藏数不小于指定值的镜像。

#通常都是登录到docker hub的网站中去查看,而不是使用docker search去搜索

搜索nginx:1.24.0的镜像
在这里插入图片描述
显示完整的镜像信息
在这里插入图片描述
搜索nginx的所有镜像中stars大于20的镜像
在这里插入图片描述

基本镜像命令

docker images

docker images [OPTIONS] [REPOSITORY[:TAG]]
#常用参数
-a : 列出本地所有的镜像(含中间映像层,默认情况下,会过滤掉中间映像层)
--digests : 显示出镜像的摘要信息
-f : 筛选出符合条件的镜像
--no-trunc : 显示完整的镜像信息
-q : 只显示镜像id
--format : 指定返回值的模板文件
  • docker images:
    在这里插入图片描述

  • docker images 指定镜像
    在这里插入图片描述

  • –digests:
    在这里插入图片描述

  • -f:
    在这里插入图片描述
    筛选出比nginx更早创建的镜像:
    在这里插入图片描述

  • q:
    在这里插入图片描述

  • reference:(通配符匹配)
    在这里插入图片描述

  • –format
    在这里插入图片描述

docker image inspect

docker image inspect [OPTIONS] IMAGE [IMAGE...]
#查看镜像的详细信息
  • docker image inspect nginx:1.24.0
    在这里插入图片描述

docker tag

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
#给本地镜像打一个标签,让其归属于某一个镜像仓库
  • docker tag
    在这里插入图片描述

基本容器命令

搭建一个nginx服务器

在宿主机上安装nginx

1.检查是否已经安装nginx
ps -ef | grep nginx
在这里插入图片描述
dpkg -l nginx 查看nginx的软件包
在这里插入图片描述

apt --purge autoremove nginx,删除软件包和数据
在这里插入图片描述
2.使用apt命令安装nginx,并启动

apt-get install -y nginx # 使用apt源进行安装nginx

在这里插入图片描述

#安装好后nginx自动启动

在这里插入图片描述

#也可以进行手动启动
nginx

nginx -v #查看nginx属性

在这里插入图片描述
在这里插入图片描述

3.访问服务器

在这里插入图片描述

docker run

docker run #创建一个容器并执行一个命令
#常用参数
-d : 后台运行容器,并返回容器id
-i : 以交互式形式启动容器,通常与-t一起使用
-t : 为容器重新分配一个伪终端,通常与-i一起使用
-P : 随机端口映射,容器内部端口随机映射到主机的某个端口
--name="name" : 为容器设定一个name
-h : 指定容器的hostname
-e : 设置容器的环境变量
-m : 设置容器可使用的内存最大值
--link= :添加链接到另一个容器
--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": #绑定容器到指定 CPU运行
--rm : shell退出时自动删除容器
  • -d:使用docker run启动nginx容器
    默认是前台启动一个容器
    在这里插入图片描述
    可以使用docker ps来查看容器
    在这里插入图片描述
    docker run -d 在后台启动一个容器
    在这里插入图片描述

  • it (启动一个Cenots 容器)
    在这里插入图片描述
    在这里插入图片描述

  • -P
    🚀如果启动一个nginx容器,不与主机的端口打通,在浏览器是访问不到nginx服务器的,因为容器之间网络是隔离的,要想访问到主机内部的容器,就要将主机的端口和容器的端口打通。
    在这里插入图片描述
    在这里插入图片描述
    docker run -d -P nginx:1.24.0在后台启动一个nginx容器,并且将容器的80号端口与主机的某个端口打通:
    在这里插入图片描述
    这里是将容器的80号端口与主机的32768号端口打通,所以在浏览器上访问主机的32768号端口就能访问到nginx。
    在这里插入图片描述

  • -p(指定端口的映射关系)
    在这里插入图片描述
    在这里插入图片描述

  • –name
    在这里插入图片描述
    在这里插入图片描述

  • –rm
    kill掉之前启动的nginx容器
    在这里插入图片描述
    在这里插入图片描述
    可以看到不能给容器设定重复的名字,即使之前的容器已经被暂定运行了,这是因为即使一个容器被kill之后,系统仍旧保留着它的信息,docker ps -a可以查询到
    在这里插入图片描述
    --rm就是当某个容器终止后,自动删除容器
    在这里插入图片描述

  • –link
    🚀启动两个Centos容器,将Centos-2添加链接到Centos-1上:
    在这里插入图片描述
    在这里插入图片描述
    使用Centos-2容器pingCentos-1容器:
    在这里插入图片描述
    使用Centos-1容器pingCentos-2容器:
    在这里插入图片描述
    发现ping不通,这是因为只是将Centos-2容器添加链接到Centos-1,但是Centos-1并没有添加链接到Centos-2。
    docker ps
    在这里插入图片描述
    Centos-2:
    在这里插入图片描述
    Centos-2:
    在这里插入图片描述

docker ps

docker ps [OPTIONS]
-a : 显示所有容器,包括未运行的
-f : 根据条件过滤显示的内容
--format : 指定返回的模板文件
-l : 显示最新运行的容器
-n : 显示最近创建的n个容器
--no-trunc : 不截断的输出信息
-q : 静默模式,只输出容器的编号
-s : 显示容器可写层和只读层的大小

🚀启动两个nginx容器
在这里插入图片描述

  • docker ps -a
    在这里插入图片描述

  • docker ps -f
    在这里插入图片描述
    在这里插入图片描述

  • docker ps --format
    在这里插入图片描述

  • docker ps -l / -n
    在这里插入图片描述

  • docker ps -s
    在这里插入图片描述

镜像仓库实战

下载一个busybox并推送到远程镜像仓库

🚀什么是busybox?

BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一
些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例
grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。
简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也
包含了 Linux 系统的自带的shell。busybox是一个集成了三百多个最常用linux命令和
工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却
只有区区1M左右的大小.因海外带宽较小,我们拉取该镜像推送到自己的仓库。

1.查询busybox镜像
在这里插入图片描述

使用docker search 查询镜像时,看到的镜像信息有限,所以一般都是在docker hub中去查看镜像信息。

在这里插入图片描述
2.拉取busybox镜像
在这里插入图片描述
3.使用busybox
在这里插入图片描述

4.打标签,推送到自己的docker hub私有仓库
创建自己的私有仓库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

腾讯云上创建自己的镜像仓库

1.登陆后,在搜索框中搜索容器镜像,选择个人版
在这里插入图片描述
2.进入管理控制台,创建个人版实例(只能选择广州)
在这里插入图片描述
在这里插入图片描述
3.创建命名空间,创建镜像仓库
在这里插入图片描述
在这里插入图片描述

4.登录腾讯云镜像仓库,将busybox打标签推送到远程仓库

在这里插入图片描述
在这里插入图片描述

阿里云上创建自己的镜像仓库

1.搜索容器镜像服务
在这里插入图片描述
2.点击管理控制台,创建个人实例
在这里插入图片描述
3.设置镜像仓库密码在这里插入图片描述
4.创建命名空间和镜像仓库
在这里插入图片描述
5.使用docker login登录到阿里云的镜像仓库,并完成busybox的打包推送

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大理寺j

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值