五、【Docker笔记】Dockers仓库
仓库是集中存放镜像的地方,仓库的概念不要与注册服务器做混淆。注册服务器是存放仓库的具体服务器,每个服务器上可能有多个仓库,一个仓库有多个镜像。
仓库又可分为共有仓库和私有仓库,最大的共有仓库即Docker官方提供的DockerHub。
一、Docker Hub
此为官方提供的和维护的最大公共仓库,地址为 https://hub.docker.com 。
1、登录
我们可以使用 docker login 命令来登录,该命令过程需要输入用户名、密码和邮箱来完成注册和登录,之后这些信息保存在本地的 .dockercfg 文件中。
# 0. 使用 docker login 命令登录DockerHub
$ sudo docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: cq1415583094
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
# 1. 查看本地配置文件
2、基本操作
登录之后,我们即可使用 docker search 命令来查找官方仓库中的镜像文件,找到后使用 docker pull 命令将镜像下载到本地。
# 0. 从官方仓库中查找 centos 镜像
$ sudo docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5925 [OK]
ansible/centos7-ansible Ansible on Centos7 128 [OK]
...
# 1. 将官方提供的镜像下载到本地
$ sudo docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
# 2. 将刚才下载的上传到仓库
# 2.1 将刚才的镜像tag做修改
$ sudo docker tag centos:latest cq1415583094/centos:latest
# 2.2 上传自己的镜像
$ sudo docker push cq1415583094/centos:latest
The push refers to repository [docker.io/cq1415583094/centos]
0683de282177: Mounted from library/centos
latest: digest: sha256:9e0c275e0bcb495773b10a18e499985d782810e47b4fce076422acb4bc3da3dd size: 529
# 3. 搜索自己的centos
$ sudo docker search cq1415583094/centos
3、自动创建
当我们创建了镜像,安装了软件,当此时软件发布了新的版本,若要更新则需要我们手动更新镜像。而Docker为我们提供了自动创建的过程。
不过在使用该功能时,需要我们通过DockerHub指定跟踪一个目标网站(支持GitHub/BitBucket)上的项目,若发现项目有新的提交则自动创建。关于配置自动创建步骤如下:
创建并登录DockerHub以及目标网站。并在目标网站连接账户到DockerHub。
在DockerHub上配置一个自动创建。
选取一个目标网站上的项目和分支。当然该项目需要含Dockerfile。
指定Dockerfile的位置,并提交创建。
二、DaoCloud
Docker官方仓库有时访问比较慢,此时可以使用国内提供的仓库,目前国内的仓库有DaoCloud,地址为 https://hub.daocloud.io/ ,在仓库中可以搜索到centos的各个版本。
# 从DaoCloud仓库拉取centos7镜像
$ sudo docker pull daocloud.io/library/centos:7
ab5ef0e58194: Pull complete
Digest: sha256:285bc3161133ec01d8ca8680cd746eecbfdbc1faa6313bd863151c4b26d7e5a5
Status: Downloaded newer image for daocloud.io/library/centos:7
daocloud.io/library/centos:7
# 查看镜像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/centos 7 5e35e350aded 4 months ago 203MB
三、创建和使用私有仓库
公司中一般都有自己的一个私有仓库,对于私有仓库中的镜像也只是公司内部使用。那么我们就来创建一个私有仓库。
1、使用registry镜像创建私有仓库
# 0. 使用 registry 镜像来搭建私有仓库, 并将容器中的 5000端口对应系统的 5000端口
$ sudo docker run -d -p 5000:5000 registry
这样我们的私有仓库即搭建完成,对应的地址为 192.168.0.128:5000
2、管理私有仓库镜像
2.1、上传镜像到私有仓库
# 0. 查看本地cnetos镜像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 5e35e350aded 4 months ago 203MB
# 1. 修改tag为私有仓库的tag
$ sudo docker tag centos:7 192.168.0.128:5000/centos:7
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.0 0f5b15a68f76 14 hours ago 64.2MB
test latest e5bc93985af0 2 days ago 64.2MB
user/test latest e5bc93985af0 2 days ago 64.2MB
ubuntu latest 4e5021d210f6 2 weeks ago 64.2MB
registry latest 708bc6af7e5e 2 months ago 25.7MB
cq1415583094/centos latest 470671670cac 2 months ago 237MB
centos latest 470671670cac 2 months ago 237MB
daocloud.io/library/centos 7 5e35e350aded 4 months ago 203MB
centos 7 5e35e350aded 4 months ago 203MB
[root@localhost opt]# sudo docker tag centos:7 192.168.0.128:5000/centos:7
[root@localhost opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.0.128:5000/centos 7 5e35e350aded 4 months ago 203MB
# 2. 使用 docker push 命令上传
$ sudo docker push 192.168.0.128:5000/centos
# 说明:有时在push中会报https错 这因为是docker私有仓库服务器,默认是基于https传输的,所以我们需要在客户端做相关设置,不使用https传输。
$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://hub.docker.com"],
"insecure-registries":["192.168.0.128:5000"]
}
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
五、【Docker笔记】Dockers仓库的更多相关文章
- Docker笔记2:Docker 镜像仓库
Docker 镜像的官方仓库位于国外服务器上,在国内下载时比较慢,但是可以使用国内镜像市场的加速器(比如阿里云加速器)以提高拉取速度. Docker 官方的镜像市场,可以和 Gitlab 或 GitH ...
- Docker笔记(十一):Dockerfile详解与最佳实践
Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像.本文介绍Dockerfile的常用指令及相应的最佳实践建议. 1. 理解构建上下文 ...
- Docker笔记(四):Docker镜像管理
原文地址:http://blog.jboost.cn/2019/07/16/docker-4.html 在Docker中,应用是通过容器来运行的,而容器的运行是基于镜像的,类似面向对象设计中类与对象的 ...
- Docker笔记(八):数据管理
前面(哪个前面我也忘了)有说过,如果我们需要对数据进行持久化保存,不应使其存储在容器中,因为容器中的数据会随着容器的删除而丢失,而因通过将数据存储于宿主机文件系统的形式来持久化.在Docker容器中管 ...
- Docker笔记(九):网络管理
Docker的应用运行在容器中,其相互之间或与外部之间是如何通信的,涉及到哪些知识点,本文对相关内容进行整理.因网络这块牵涉的面较多,因此只从日常使用或理解的角度出发,过于专业的就不深入探讨了. 1. ...
- k8s kubernetes 核心笔记 镜像仓库 项目k8s改造(含最新k8s v1.16.2版本)
k8s kubernetes 核心笔记 镜像仓库 项目k8s改造 2019/10/24 Chenxin 一 基本资料 一 参考: https://kubernetes.io/ 官网 https://k ...
- Docker镜像的仓库及底层依赖的核心技术(3)
一.docker镜像的仓库 仓库分为公共仓库和私有仓库 DockerHub的官方仓库:https://hub.docker.com DockerPool社区仓库:https://dl.dockerpo ...
- Docker笔记--镜像&基于GO项目创建Docker镜像
Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...
- 第四章 使用Docker镜像和仓库(二)
第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...
- 第四章 使用Docker镜像和仓库
第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...
随机推荐
- MATLAB神经网络(6) PID神经元网络解耦控制算法——多变量系统控制
6.1 案例背景 6.1.1 PID神经元网络结构 PID神经元网络从结构上可以分为输入层.隐含层和输出层三层,$n$个控制量的PID神经元网络包含$n$个并列的相同子网络,各个子网络间既相互独立,又 ...
- 区间DP(力扣1000.合并石头的最低成本)
一.区间DP 顾名思义区间DP就是在区间上进行动态规划,先求出一段区间上的最优解,在合并成整个大区间的最优解,方法主要有记忆化搜素和递归的形式. 顺便提一下动态规划的成立条件是满足最优子结构和无后效性 ...
- 9-4 Vue 缓存和子传副(组件)方法绑定
学习了Vue框架近三个月,现在对数据绑定有了点认识,但是发现自己反而对js不是特别的熟. 下面是今天写代码刚好碰到的问题: 缓存的话:3句代码 sessionStorage.setItem(" ...
- Python离线项目迁移部署
最近遇到了一个场景:需要将Python项目文件打包到无法联网的主机上部署执行,本篇文章记录针对于该场景的处理方案. 说明: 源主机(可联网):安装了Python3和pip3 目标主机(无法联网):需安 ...
- vscode 自动修复 setting.json 修改完,得重启浏览器 # 新版(>1.41.0)配置 vscode #解决了
vscode 自动修复 setting.json 修改完,得重启浏览器,不用 npm run dev 就能看到效果 "editor.codeActionsOnSave": { &q ...
- Airtest,Poco,Unity自动化测试集成
作为一个Game Developer,测试部分是必不可少,程序完成需求首先要进行S0相关的测试,这样确保交付到策划验收和QA验收时是没有阻断性的bug或者显而易见代码缺陷.那么如何去做测试用例呢?肯定 ...
- 2019HECTF总结_web题
奇怪的编码 ♭|§∮♯♭|§∮♬♭|§§♫♭|§∮§♭|§♩§♭|♯♬¶♭|§§♫♭|§§¶♭|♯¶§♭|♯¶♫♭|§∮♭♭|§§♫♭|§§♬♭|♯♬♪♭|♯¶♪♭|♯¶|♭|♯¶♯♭|♯♬♬♭|♯♬ ...
- 2020年Java基础高频面试题汇总(1.4W字详细解析)
1. Java语言有哪些特点 (1)简单易学.有丰富的类库 (2)面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) (3)与平台无关性(JVM是Java跨平台使用的根本) (4)可靠安全 ...
- VScode 快捷键大全
按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show Command Palette Ctrl + P 快速打开 Quick Open Ctrl + ...
- SQL语句中,如何使用含有if....else...判断语句
在我们开发中,有时要对数据库中的数据按照条件进行查询,用到if else类似的语句进行判断,那么if else语句只有在存储过程,触发器之类的才有,但是要在sql上当满足某种条件上要取不同的字段值,刚 ...