公司中 Docker镜像仓库使用讲解
简介:讲解一般公司中docker仓库的使用
-
什么是镜像仓库?
存放着很多镜像的仓库
-
为什么要使用镜像仓库?
起到备份作用
方便其他机器下载使用
-
镜像仓库的种类?我们可以大致分为俩大类:
公共镜像仓库
官方:Docker Hub,基于各个软件开发或者有软件提供商开发的
非官方:其他组织或者公司开发的镜像,供大家免费使用
私有镜像仓库
公司自己搭建的,用于存放公司内部的镜像,自己管理,不提供给外部使用,避免了商业项目暴露出
去的风险。
6.2 阿里云镜像仓库的搭建与使用
简介:阿里云镜像仓库
阿里云镜像仓库申请地址:点击登录
进入后先创建一个个人实例,见图解
设置Registry登录账号:xxxxxxxxx 密码:xxxxxxxxx
-
登录阿里云Docker Registry
$ docker login --username=账号 registry.cn-beijing.aliyuncs.com
-
将镜像推送到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:[镜像版本号]
-
从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