Docker企业核心知识之镜像仓库实战

公司中 Docker镜像仓库使用讲解

简介:讲解一般公司中docker仓库的使用

  • 什么是镜像仓库?

存放着很多镜像的仓库

  • 为什么要使用镜像仓库?

起到备份作用

方便其他机器下载使用

  • 镜像仓库的种类?我们可以大致分为俩大类:

公共镜像仓库

官方:Docker Hub,基于各个软件开发或者有软件提供商开发的

非官方:其他组织或者公司开发的镜像,供大家免费使用

私有镜像仓库

公司自己搭建的,用于存放公司内部的镜像,自己管理,不提供给外部使用,避免了商业项目暴露出

去的风险。

6.2 阿里云镜像仓库的搭建与使用

简介:阿里云镜像仓库

阿里云镜像仓库申请地址:点击登录

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

进入后先创建一个个人实例,见图解

设置Registry登录账号:xxxxxxxxx 密码:xxxxxxxxx

  1. 登录阿里云Docker Registry

$ docker login --username=账号 registry.cn-beijing.aliyuncs.com
  1. 将镜像推送到Registry

$ docker login --username=账号 registry.cn-beijing.aliyuncs.com
$ docker tag [ImageId] registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql:[镜像版本号] 
$ docker push registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql:[镜像版本号]
  1. 从Registry中拉取镜像

$ docker pull registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql:[镜像版本号]

操作

#1,登录阿里云Docker Registry
[root@localhost ~]# docker login --usern=账号 registry.cn-beijing.aliyuncs.com
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
​
Login Succeeded
#登录成功,查看本地仓库
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       v1        5e385a9fe2c1   5 weeks ago    204MB
my-mysql     5.7       46c8bb5bb0d8   2 months ago   448MB
mycentos     redis     cc001c939b1a   2 months ago   550MB
mycentos     nginx     b0df0546c0e8   2 months ago   473MB
<none>       <none>    a25fe2f34e1c   2 months ago   210MB
mycentos     jdk       c3514badb52e   2 months ago   1.04GB
<none>       <none>    133158262a48   2 months ago   353MB
mysql        5.7       738e7101490b   2 months ago   448MB
mycentos     1         eeb6ee3f44bd   5 months ago   204MB
#改名字,按照上面2里面的第二行的语法。把ImageId换成 mysql的镜像id
[root@localhost ~]# docker tag 738e7101490b registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql:5.7
#改名后查看
[root@localhost ~]# docker images
REPOSITORY                                                 TAG       IMAGE ID       CREATED        SIZE
centos                                                     v1        5e385a9fe2c1   5 weeks ago    204MB
my-mysql                                                   5.7       46c8bb5bb0d8   2 months ago   448MB
mycentos                                                   redis     cc001c939b1a   2 months ago   550MB
mycentos                                                   nginx     b0df0546c0e8   2 months ago   473MB
<none>                                                     <none>    a25fe2f34e1c   2 months ago   210MB
mycentos                                                   jdk       c3514badb52e   2 months ago   1.04GB
<none>                                                     <none>    133158262a48   2 months ago   353MB
mysql                                                      5.7       738e7101490b   2 months ago   448MB
registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql   5.7       738e7101490b   2 months ago   448MB
mycentos                                                   1         eeb6ee3f44bd   5 months ago   204MB
#语法上推docker push registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql:[镜像版本号]
[root@localhost ~]#  docker push registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql:5.7
The push refers to repository [registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql]
5017b9a51024: Pushed 
9a3d42996542: Pushed 
53d7775ef9da: Pushing [=================>                                 ]  107.3MB/313MB
37776b73ee0a: Pushed 
1109ab22a05f: Pushed 
8114335ae8bd: Waiting 
525dc20b11ec: Waiting 
d1539e01b882: Waiting 
8697fe280905: Waiting 
9203c40f710c: Waiting 
f11bbd657c82: Waiting 
这个时候到阿里云,左侧点击镜像版本就能看到推送上来的mysql
测试拉去的思路:找一个新的linux,登录阿里云 后执行
3.$ docker pull registry.cn-beijing.aliyuncs.com/mysqlrepositories/mysql:[镜像版本号]
​
​

6.3 **企业核心篇幅之harbor仓库搭建

简介:构建自己的镜像仓库

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

  • docker -v

  • docker-compose version

  • python -V

  • openssl version

  • 安装 yum -y install openssl

  • Harbor离线版安装下载地址

    Releases · goharbor/harbor · GitHub

    上传对应安装包解压:

    [root@localhost local]# tar -zxvf harbor-offline-installer-v1.9.3.tgz

    修改配置:harbor.yml

    修改主机名(注意冒号右面有空格):hostname: 192.168.0.151

    修改密码(注意冒号右面有空格):harbor_admin_password: Harbor12345

    执行脚本:sh prepare

    执行安装命令:sh install.sh

    执行命令:docker-compose ps

    访问Harbor,默认用户名admin

    #解压
    [root@master ~]#tar -zxvf harbor-offline-installer-v1.10.1.tgz -C /user/local/
    [root@master ~]# cd /user/local/harbor
    [root@master harbor]# vi  harbor.yml 
    =======修改的地方======
    hostname: 123.56.169.145
    harbor_admin_password: Harbor12345
    #执行脚本 看到多了一个docker-compose.yml
    [root@master harbor]# sh prepare
    #执行安装
    [root@master harbor]# sh install.sh
    运行成功docker ps 查看,
    [root@master harbor] docker-compose ps 
    可以看到nginx指向的端口是80
    浏览器访问http://123.56.169.145:80进入界面
    账号 admin 密码Harbor12345
    ​
    关闭:docker-compose down
    ​

    关闭:docker-compose down

    启动:docker-compose up -d

    6.4 企业核心篇幅之harbor仓库配置与使用

简介:配置与使用harbor仓库

  • Docker配置使用自建仓库

  • 默认docker只允许访问 https仓库

  • 如果要访问http仓库需要自己配置

  • 配置允许访问http仓库:/etc/docker/daemon.json

{ "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],"insecure-registries":["http://192.168.1.129"] }

  • 重启docker服务:systemctl restart docker.service

  • 网页上创建项目名

  • 登录:docker login --username=admin 192.168.0.151

  • 改名:docker tag mysql:5.7 192.168.0.151/xdclass/mysql:5.7

  • 推送:docker push 192.168.0.151/xdclass/mysql:5.7

  • 下载:docker pull 192.168.0.151/xdclass/mysql:5.7

  • docker login 后有一个登录凭证(可删除,下次需要密码):

  • /root/.docker/confifig.json (建议从安全角度出发,每次登录后进行删除)

    # 进入文件中配置允许访问http
    [root@localhost harbor]# vi /etc/docker/daemon.json 
    {
    "insecure-registries":["123.56.169.145"]
    }
    ​
    #重启让配置生效
    [root@master harbor]# systemctl daemon-reload
    [root@master harbor]# systemctl restart docker
    #docker-composek命令执行后可以看到启动起来了
    [root@master harbor]# docker-compose ps
    ​
    ​
    #登录harbor 账号加上ip
    [root@localhost harbor]docker login --username=admin 123.56.169.145:80
    ​
    #改名语法:docker tag SOURCE_IMAGE[:TAG] 47.95.221.140/test/IMAGE[:TAG]
    [root@master harbor]# docker tag centos:7 123.56.169.145/test/centos:7.1
    ​
    #推送语法:docker push 47.95.221.140/test/IMAGE[:TAG]
    [root@localhost harbor]docker push 123.56.169.145/test/centos:7
    #下载
    [root@localhost harbor]docker pull 123.56.169.145/test/centos:7
    ​
    ​
    ​

6.5 实战系列像容器的载入与载出

简介:镜像的本地载入载出

  • 俩种办法:

保存镜像

保存容器

  • 保存镜像:

docker save cd3ed0dfffff7e -o /home/mysql.tar

docker save mysql:5.7 > /home/mysql.tar

  • 载入镜像:

docker load -i mysql.tar

  • 保存容器:

docker export 974b919e1fdd -o /home/mysql-export.tar

  • 载入容器:

docker import mysql-export.tar

操作思路:

[root@localhost harbor]# docker images
REPOSITORY                                                 TAG                             IMAGE ID       CREATED        SIZE
mysql                                                      5.7                             738e7101490b   2 months ago   448MB
#保存镜像到home下
[root@localhost harbor]# docker save centos:7 -o /home/centos.tar
[root@master home]# ls -l
total 206736
-rw------- 1 root root 211696640 Apr  3 23:01 centos.tar
#安装rz命令
[root@localhost home]#yum -y install lrzsz
​
rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。优点就是不用再开一个sftp工具登录上去上传下载文件。
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器
[root@localhost home]#sz centos.tar
​
#然后使用winscp上传到另外一个linux上
#载入镜像
[root@localhost home]docker load -i centos.tar
#改名
[root@localhost home] docker tag
#下载到本地
容器的保存
 docker e[root@master home]#  docker export 940f4b6f0db9 -o /home/test.tar    xport 974b919e1fdd -o /home/mysql-export.tar
[root@master home]# ll
total 413464
-rw------- 1 root root 211696640 Apr  3 23:01 mycentos.tar
-rw------- 1 root root 211688960 Apr  3 23:44 test.tar
#传到本地
[root@localhost home]#sz test.tar
 载入
[root@localhost home]  docker import test.tar
​
​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值