Docker镜像仓库

Docker镜像仓库

  • Docker Registry
    • docker hub的简单实用
    • 镜像仓库分类
  • 镜像仓库命令
    • docker login
    • docker logout
    • docker pull
    • docker push
    • docker search
  • 基本镜像命令
    • docker images
    • docker image inspect
    • docker tag
  • 基本容器命令
    • 搭建一个nginx服务器
      • 在宿主机上安装nginx
    • docker run
    • docker ps
  • 镜像仓库实战
    • 下载一个busybox并推送到远程镜像仓库
    • 腾讯云上创建自己的镜像仓库
    • 阿里云上创建自己的镜像仓库

Docker Registry

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

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

docker hub的简单实用

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

镜像仓库分类

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

镜像仓库命令

docker login

登录到一个镜像仓库

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

Docker镜像仓库_第5张图片

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镜像仓库_第6张图片
使用docker pull拉取镜像
Docker镜像仓库_第7张图片

docker push

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

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

推送案例
对之前拉取下来的nginx,重新打一个标签,然后推送到远程仓库中。在docker hub中我们可以创建自己的镜像仓库(repos)。
Docker镜像仓库_第8张图片
Docker镜像仓库_第9张图片
Docker镜像仓库_第10张图片
可以在远程镜像仓库中看到刚刚推送的镜像

Docker镜像仓库_第11张图片

docker search

从镜像仓库中查找镜像

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

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

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

基本镜像命令

docker images

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

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

  • –digests:
    Docker镜像仓库_第14张图片

  • -f:
    Docker镜像仓库_第15张图片
    筛选出比nginx更早创建的镜像:
    在这里插入图片描述

  • q:
    Docker镜像仓库_第16张图片

  • reference:(通配符匹配)
    Docker镜像仓库_第17张图片

  • –format
    Docker镜像仓库_第18张图片

docker image inspect

docker image inspect [OPTIONS] IMAGE [IMAGE...]
#查看镜像的详细信息
  • docker image inspect nginx:1.24.0
    Docker镜像仓库_第19张图片

docker tag

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
#给本地镜像打一个标签,让其归属于某一个镜像仓库
  • docker tag
    Docker镜像仓库_第20张图片

基本容器命令

搭建一个nginx服务器

在宿主机上安装nginx

1.检查是否已经安装nginx
ps -ef | grep nginx
在这里插入图片描述
dpkg -l nginx 查看nginx的软件包
Docker镜像仓库_第21张图片

apt --purge autoremove nginx,删除软件包和数据
Docker镜像仓库_第22张图片
2.使用apt命令安装nginx,并启动

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

Docker镜像仓库_第23张图片

#安装好后nginx自动启动

在这里插入图片描述

#也可以进行手动启动
nginx

nginx -v #查看nginx属性

Docker镜像仓库_第24张图片
在这里插入图片描述

3.访问服务器

Docker镜像仓库_第25张图片

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镜像仓库_第26张图片
    可以使用docker ps来查看容器
    在这里插入图片描述
    docker run -d 在后台启动一个容器
    在这里插入图片描述

  • it (启动一个Cenots 容器)
    Docker镜像仓库_第27张图片
    在这里插入图片描述

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

  • -p(指定端口的映射关系)
    在这里插入图片描述
    Docker镜像仓库_第30张图片

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

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

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

docker ps

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

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

  • docker ps -a
    Docker镜像仓库_第36张图片

  • docker ps -f
    Docker镜像仓库_第37张图片
    在这里插入图片描述

  • docker ps --format
    Docker镜像仓库_第38张图片

  • 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镜像仓库_第39张图片

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

Docker镜像仓库_第40张图片
2.拉取busybox镜像
Docker镜像仓库_第41张图片
3.使用busybox
Docker镜像仓库_第42张图片

4.打标签,推送到自己的docker hub私有仓库
创建自己的私有仓库
Docker镜像仓库_第43张图片
在这里插入图片描述
Docker镜像仓库_第44张图片

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

1.登陆后,在搜索框中搜索容器镜像,选择个人版
Docker镜像仓库_第45张图片
2.进入管理控制台,创建个人版实例(只能选择广州)
Docker镜像仓库_第46张图片
Docker镜像仓库_第47张图片
3.创建命名空间,创建镜像仓库
Docker镜像仓库_第48张图片
Docker镜像仓库_第49张图片

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

Docker镜像仓库_第50张图片
Docker镜像仓库_第51张图片

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

1.搜索容器镜像服务
Docker镜像仓库_第52张图片
2.点击管理控制台,创建个人实例

3.设置镜像仓库密码Docker镜像仓库_第53张图片
4.创建命名空间和镜像仓库
Docker镜像仓库_第54张图片
5.使用docker login登录到阿里云的镜像仓库,并完成busybox的打包推送

Docker镜像仓库_第55张图片
Docker镜像仓库_第56张图片

Docker镜像仓库_第57张图片

你可能感兴趣的:(docker,docker,容器,运维)