Mac 环境部署Docker私有仓库
docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传、下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证书的私有仓库。
一、查看docker-machine虚拟机IP
|
1
|
docker-machine ip default |
注:如果docker-machine 没有启动,执行 docker-machine start, 会自动启动一个default的虚拟机。
默认情况下docker-toolbox创建的虚拟机名称为default,如果您的虚拟机名字不是这个,上面命令最后的default换成真实的虚拟机名字,假设default分配的IP为192.168.99.100
二、修改虚拟机中的docker启动配置
由于docker最新版本默认访问私服时,强制采用SSL安全连接,但一般内部应用时不需要这么高的安全级别,参考下面的做法降低安全设置:
|
1
2
|
docker-machine ssh defaultsudo vi /var/lib/boot2docker/profile |
在profile文件最后加上:
|
1
|
EXTRA_ARGS="--insecure-registry 192.168.99.100:5000" |
然后exit退出default,输入以下命令重启虚拟机
|
1
|
docker-machine restart default |
三、创建私服容器
|
1
2
3
4
5
6
|
dao pull registry // 也可以在其他地方下载docker run -d -p 5000:5000 --restart=always -h registry \ --name registry \ -v /Users/edward/data/registry:/tmp/registry \ registry |
第1行的dao pull registry表示将从daocloud.io上拉取registry镜像,如果本机已经有该镜像,可以省略。
-v 后面的路径,大家改成实际路径,这个目录用于存放push到私有仓库的images文件。
四、测试上传、下载
4.1 先从daocloud.io上拉一个httpd
|
1
|
dao pull httpd |
4.2 将hello-world打标签成私服镜像
|
1
|
docker tag httpd localhost:5000/httpd |
上面的ip要换真实的虚拟机ip,执行完以后,本机镜像文件应该能看到这个images,见下图:

注:原始镜像 httpd 与打tag后的镜像具有相同的IMAGE ID,说明这二个镜像就是同一个,只是tag不同而已。
4.3 上传到私有仓库
|
1
|
docker push localhost:5000/httpd |
顺利的话,应该很快就能上传完:
|
1
2
3
4
5
6
7
|
➜ ~ docker push localhost:5000/httpdThe push refers to a repository [localhost:5000/httpd] (len: 1)Sending image listPushing repository localhost:5000/httpd (1 tags)3f12c794407e: Image successfully pushed975b84d108f1: Image successfully pushedPushing tag for rev [975b84d108f1] on {http://localhost:5000/v1/repositories/hello-world/tags/latest} |
4.4 从私有仓库下载
因为本机已经有httpd的镜像了,为了方便验证,先把它删除:
|
1
2
3
|
docker rmi -f httpd localhost:5000/httpd#或#docker rmi -f 975b84d108f1 #即:httpd的IMAGE ID |
然后下载:
|
1
|
docker pull localhost:5000/httpd |
内网环境,应该很快就能下载完成:
|
1
2
3
4
5
6
7
|
➜ ~ docker pull localhost:5000/httpdUsing default tag: latestPulling repository localhost:5000/httpd975b84d108f1: Download complete3f12c794407e: Download completeStatus: Downloaded newer image for localhost:5000/httpd:latestlocalhost:5000/httpd: this image was pulled from a legacy registry. <br>Important: This registry version will not be supported in future versions of docker. |
注:如果私有仓库要放置在公网上,建议还是按官方推荐的做法,设置SSL证书,强制走https协议,否则将有安全风险。
5 验证:
docker run -d -p 80:80 localhost:5000/httpd

OK!
注:如果registry仓库是在局域网的其它服务器(如:192.168.1.14:5000)上运行,mac做为一个docker 客户端从仓库下载镜像,可以这样配置后,再重启。



Mac 环境部署Docker私有仓库的更多相关文章
- kubernetes部署Docker私有仓库Registry
在后面的部署过程中,有很多的docker镜像文件,由于kubernetes是使用国外的镜像,可能会出现下载很慢或者下载不下来的情况,我们先搭建一个简单的镜像服务器,我们将需要的镜像下载回来,放到我们自 ...
- Docker私有仓库与Harbor部署使用
Docker私有仓库与Harbor部署使用 目录 Docker私有仓库与Harbor部署使用 一.本地私有仓库 1. 下载registry镜像 2. 在daemon.json文件中添加私有镜像仓库地址 ...
- windows 环境下搭建docker私有仓库
windows 环境下搭建docker私有仓库 1.在公用仓库中pull仓库镜像 docker pull regitry 2.启动仓库镜像 //-d意思是后台运行,-p是做端口映射,这里是将本地的50 ...
- docker 私有仓库简易搭建
概要 本地私有仓库 局域网私有仓库 总结 概要 docker hub 使用非常方便,而且上面有大量的镜像可以使用. 但是,每次都远程下载镜像速度非常慢,如果能在本地做一个 docker 的仓库,多人协 ...
- Docker私有仓库registry的搭建及使用
前言 由于Docker Hub公共仓库很多时候使用这并不是很方便,大分部因为网络的问题可能拉取的时候会很慢或者拉取不到,所以搭建一个本地的私有仓库. 准备 由于此篇文章是在Kubernetes集群安装 ...
- Docker容器化【Dockerfile编写&&搭建与使用Docker私有仓库】
# Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...
- 2.使用nexus3配置docker私有仓库
1,配置走起 1,创建blob存储 登陆之后,先创建一个用于存储镜像的空间. 定义一个name,下边的内容会自动补全. 然后保存. 注意:实际生产中使用,建议服务器存储500G或以上. 2,创建一个h ...
- Ubuntu构建Docker私有仓库(Repository) 配置过程笔记
一.准备: 1.服务器(或者虚拟机2台,我的服务环境[ 阿里云服务器-Ubuntu 1804 +百度云-Ubuntu 1604]) 2.有效镜像(我这里以上一篇随笔镜像作为有效镜像https://w ...
- 搭建docker私有仓库,建立k8s集群
服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...
随机推荐
- js 实现各浏览器全屏
现代浏览器包括ie11,可以直接用h5的全屏api实现 低版本的IE需要通过ActiveX插件实现: 代码实现 <!DOCTYPE html> <html> <head& ...
- appium框架之bootstrap
(闲来无事,做做测试..)最近弄了弄appium,感觉挺有意思,就深入研究了下. 看小弟这篇文章之前,先了解一下appium的架构,对你理解有好处,推荐下面这篇文章:testerhome appium ...
- NIO原理及案例使用
什么是NIO Java提供了一个叫作NIO(New I/O)的第二个I/O系统,NIO提供了与标准I/O API不同的I/O处理方式.它是Java用来替代传统I/O API(自Java 1.4以来). ...
- Django(一) 安装使用基础
大纲 安装Django 1.创建Django工程 2.创建Django app 3.写一个简单的登录注册相应页面 4.获取用户请求信息并处理 5.前后端交互 6.Django 请求 生命周期 跳转到 ...
- [模板] BSGS/扩展BSGS
简介 前置知识: 快速幂&&O(1)快速乘 [模板] 数学基础:快速幂/乘/逆元/exGCD/(ex)CRT/(ex)Lucas定理
- 使用@property
@property装饰器就是负责把一个方法变成属性调用的,既能检查参数,又可以用类似属性这样简单的方式来访问类的变量 class Student(object): @property def scor ...
- BZOJ 3653: 谈笑风生(离线, 长链剖分, 后缀和)
题意 给你一颗有 \(n\) 个点并且以 \(1\) 为根的树.共有 \(q\) 次询问,每次询问两个参数 \(p, k\) .询问有多少对点 \((p, a, b)\) 满足 \(p,a,b\) 为 ...
- [Coci2015]Divljak
题目描述 Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的. 接下来会发生q个操作,操作有两种形式: “1 P”,Bob往自己的集合里添加了一个字符串P. ...
- pc安装完成charles成功,小米安装crt证书失败
问题描述: 今天在学习爬虫爬取APP内容时,需要安装crt证书.根据静谧大大的书,前面都挺顺利的.但在我的小米手机上安装crt证书时,出现了错误.手机显示无法安装. 解决之道: 1.不要用小米手机自带 ...
- java 发送 mail 纯文本发送和html格式发送
一:需要引入mail maven jar包 <!--邮件发送包--> <dependency> <groupId>javax.mail</groupId> ...