(六)阿里云镜像仓库,harbor镜像仓库企业级使用

6.1 阿里云私有镜像仓库搭建使用

阿里云镜像仓库申请地址:

https://cr.console.aliyun.com/cn-shanghai/instances/repositories

创建步骤

1.点击创建镜像仓库
(六)阿里云镜像仓库,harbor镜像仓库企业级使用_第1张图片
2.创建添加信息
(六)阿里云镜像仓库,harbor镜像仓库企业级使用_第2张图片
3.选择本地仓库创建
(六)阿里云镜像仓库,harbor镜像仓库企业级使用_第3张图片

6.2 harbor仓库搭建使用

Harbor是一个开源的企业级Docker Registry,它提供了安全的镜像管理、访问控制、漏洞扫描等功能,可以轻松地搭建自己的Docker私有仓库。

安装之前确保前置条件是否满足,需要安装docker、docker-compose、openssl以及python2.7以上

  • 安装Docker和Docker Compose
  • 安装openssl: yum -y install openssl
  • 下载Harbor离线包 下载地址:https://github.com/goharbor/harbor/releases
  • 解压离线包并修改配置文件
    将下载的离线包解压到任意目录下,并进入解压后的目录。在该目录下可以找到一个名为harbor.yml的 配置文件
    修改主机名(注意冒号后空格):hostname: 192.168.0.11
    修改密码(注意冒号后空格):harbor_admin_password: 47447QQ
  • 执行更新脚本:sh prepare
  • 执行安装命令:sh install.sh
  • 在解压后的目录下执行以下命令,启动Harbor: docker-compose up -d
  • 在浏览器中输入https://或者https://<域名>,即可访问Harbor的Web界面,
    默认登录名admin

6.3 harbor仓库配置与使用

修改仓库配置

默认docker只允许访问 https仓库如果要访问http仓库需要自己配置
配置允许访问http仓库:/etc/docker/daemon.json

{
"insecure-registries":["http://192.168.0.151"]
}

重启docker服务:systemctl restart docker.service

使用

harbor网页上创建项目名
登录:docker login --username=admin 192.168.0.11
改名:docker tag mysql:5.7 192.168.0.11/项目名/mysql:5.7
推送:docker push 192.168.0.11/项目名/mysql:5.7
下载:docker pull 192.168.0.11/项目名/mysql:5.7

注意:docker login 后有一个登录凭证(可删除,下次需要密码):
/root/.docker/config.json (建议从安全角度出发,每次登录后进行删除)

命令详解

  • docker push:用于将本地构建的 Docker 镜像推送到 Docker Hub 或其他 Docker 镜像仓库中,以供其他用户和机器访问和使用。

    docker push [OPTIONS] NAME[:TAG]
    

    其中 NAME[:TAG] 表示要推送的镜像名称和版本号。比如,推送 nginx 官方镜像到 Docker Hub 的 myaccount 仓库中,可以使用如下命令:

    docker push myaccount/nginx
    
  • docker tag:用于为本地镜像添加标签,以便将其上传到远程镜像仓库中。

    docker tag <IMAGE_ID> <REPOSITORY_NAME>:<TAG>
    

    其中, 是本地镜像的 ID 或者镜像名称, 是远程镜像仓库的名称, 是此镜像的标记名称。在这个命令中, 与 一起组成了镜像的完整名称。
    例如,我们可以使用以下命令为本地镜像添加标签:

    docker tag myimage:latest myregistry.com/myimage:1.0
    

    这将为本地镜像 myimage:latest 添加一个名为 myregistry.com/myimage:1.0 的标签,将其上传到名为 myregistry.com 的远程镜像仓库中。

    需要注意的是,使用 docker tag 命令只是为本地镜像添加了一个新的标签,原本的镜像 ID 和名称并没有改变。

  • docker pull
    用于从 Docker Registry 中拉取镜像到本地。Docker Registry 是 Docker 镜像的集中存储和分发点,Docker Hub 是 Docker 官方提供的一个公共 Registry,包含了数量庞大的官方和社区提供的镜像。除了 Docker Hub,还可以使用其他的 Registry,比如阿里云的 Registry、Harbor 等等。

    使用 docker pull 命令拉取镜像的语法格式如下:

    docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    

    其中,OPTIONS 表示可选的参数,NAME 表示镜像的名称,TAG 表示镜像的标签,DIGEST 表示镜像的哈希值。
    例如,要从 Docker Hub 拉取官方的 nginx 镜像:

    docker pull nginx:1.19.10
    

    如果需要从其他的 Registry 拉取镜像,可以在镜像名称前面加上 Registry 的地址,例如:

    docker pull registry.cn-hangzhou.aliyuncs.com/xxx/nginx:1.19.10
    

6.4 本地镜像容器的载入与载出

镜像载入与载出

在 Docker 中,本地镜像的载入和载出可以使用 docker save 和 docker load 命令来实现。这两个命令可以将 Docker 镜像导出到一个 tar 文件,或者从一个 tar 文件中导入到本地 Docker 环境中。

具体来说,docker save 命令用于将本地的 Docker 镜像打包成一个 tar 文件,命令格式为:

docker save IMAGE1 [IMAGE2 ...] -o FILENAME.tar

其中,IMAGE1、IMAGE2 等是要导出的 Docker 镜像名称或 ID,FILENAME.tar 是导出的 tar 文件名。例如:

docker save nginx -o nginx.tar

上述命令将导出本地的 nginx 镜像,并保存到 nginx.tar 文件中。

接着,可以使用 docker load 命令将导出的 tar 文件加载到本地 Docker 环境中,命令格式为:

docker load -i FILENAME.tar

其中,FILENAME.tar 是要导入的 tar 文件名。例如:

docker load -i nginx.tar

上述命令将加载之前导出的 nginx.tar 文件,并将其中的 Docker 镜像导入到本地 Docker 环境中。

容器载入与载出

类似地,如果要导出本地的 Docker 容器,可以使用 docker export 命令将容器导出到一个 tar 文件,命令格式为:

docker export CONTAINER_ID -o FILENAME.tar

其中,CONTAINER_ID 是要导出的 Docker 容器的 ID,FILENAME.tar 是导出的 tar 文件名。例如:

docker export abc123 -o container.tar

上述命令将导出容器 ID 为 abc123 的 Docker 容器,并保存到 container.tar 文件中。注意,导出的容器将不包含该容器的 Docker 镜像,只包含容器内部的文件系统内容。

最后,可以使用 docker import 命令将导出的 tar 文件导入到本地 Docker 环境中,命令格式为:

docker import FILENAME.tar REPOSITORY:TAG

其中,FILENAME.tar 是要导入的 tar 文件名,REPOSITORY:TAG 是导入后的 Docker 镜像名称和标签。例如:

docker import container.tar myrepo/myimage:v1.0

上述命令将加载之前导出的 container.tar 文件,并将其中的容器文件系统导入到名为 myrepo/myimage,标签为 v1.0 的 Docker 镜像中。

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