ubuntu 14.04 https 形式安装docker 私有库 harbor
起始目录/root,root 登陆后,直接在该目录进行下面的命令
下载harbor 预编译包 0.4.5
准备通过域名 reg.server.com 来访问镜像库所以需要在/etc/hosts 文件中加入 192.168.10.90 reg.server.com, IP 镜像服务器的地址。
1 生成 CA 证书(注意内容不能乱填)
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:beijing
Locality Name (eg, city) []:beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:reg.server.com
Organizational Unit Name (eg, section) []:reg.server.com
Common Name (e.g. server FQDN or YOUR name) []:reg.server.com # 这里最重要,一定要填写你准备使用的域名
Email Address []:admin@reg.server.com
命令完成后生成ca.crt, ca.key文件
2 然后生成CA 签名,注意文件名称要与你的域名匹配
openssl req -newkey rsa:4096 -nodes -sha256 -keyout reg.server.com.key -out reg.server.com.csr
输入的内容如下
writing new private key to 'reg.server.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:beijing
Locality Name (eg, city) []:beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:reg.server.com
Organizational Unit Name (eg, section) []:reg.server.com
Common Name (e.g. server FQDN or YOUR name) []:reg.server.com # 必须和域名一致
Email Address []:admin@reg.server.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: #密码留空即可
An optional company name []:
命令完成后生成
reg.server.com.key 和
reg.server.com.csr
3 生成证书
可以查看/etc/ssl/openssl.cnf 配置文件中 ssl 默认的文件夹名称是什么,一般来说,没被改动过的话是demoCA.
3.1 创建文件夹和辅助内容
mkdir demoCA
cd demoCA
touch index.txt
echo '01' > serial
cd ..
3.2 签名证书
因为我们生成签名的时候使用的是FQDN 所以需要如下命令
echo subjectAltName = IP:192.168.10.90 > extfile.cnf
openssl ca -in reg.server.com.csr -out reg.server.com.crt -cert ca.crt -keyfile ca.key -extfile extfile.cnf -outdir .
3.3 讲生成的证书加入本机信任
运行3.2 的命令之后,会生成一个01.pem 和 reg.server.com.crt的证书。
cat 01.pem >> reg.server.com.crt
cp ca.crt reg.server.com.crt /usr/local/share/ca-certificates/
update-ca-certificates
4 安装Docker(如果在导入信任证书前安装了docker, 需要重启docker,命令为 service docker restart
安装方法参见
https://docs.docker.com/engine/installation/Linux/ubuntulinux/
5 安装docker compose
安装方法参见
https://docs.docker.com/compose/install/
如果遇到伟大的长城问题。
可以直接爬墙把docker-compose-Linux-x64 文件下载下来。然后chmod +x 就可以了,然后在把这个文件改名为docker-compose 复制到/usr/local/bin 下,就算安装完成。
6 配置harbor
解压安装包
tar -zxvf harbor-offline-installer-0.4.5.tgz
修改 harbor.cfg 文件为
- ## Configuration file of Harbor
- #The IP address or hostname to access admin UI and registry service.
- #DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
- hostname = reg.server.com #必须和签名时的域名一致
- #The protocol for accessing the UI and token/notification service, by default it is http.
- #It can be set to https if ssl is enabled on nginx.
- ui_url_protocol = https
- #Email account settings for sending out password resetting emails.
- email_server = smtp.mydomain.com
- email_server_port = 25
- email_username = sample_admin@mydomain.com
- email_password = abc
- email_from = admin <sample_admin@mydomain.com>
- email_ssl = false
- ##The initial password of Harbor admin, only works for the first time when Harbor starts.
- #It has no effect after the first launch of Harbor.
- #Change the admin password from UI after launching Harbor.
- harbor_admin_password = Harbor12345 #密码可以随便改
- ##By default the auth mode is db_auth, i.e. the credentials are stored in a local database.
- #Set it to ldap_auth if you want to verify a user's credentials against an LDAP server.
- auth_mode = db_auth
- #The url for an ldap endpoint.
- ldap_url = ldaps://ldap.mydomain.com
- #A user's DN who has the permission to search the LDAP/AD server.
- #If your LDAP/AD server does not support anonymous search, you should configure this DN and ldap_search_pwd.
- #ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
- #the password of the ldap_searchdn
- #ldap_search_pwd = password
- #The base DN from which to look up a user in LDAP/AD
- ldap_basedn = ou=people,dc=mydomain,dc=com
- #Search filter for LDAP/AD, make sure the syntax of the filter is correct.
- #ldap_filter = (objectClass=person)
- # The attribute used in a search to match a user, it could be uid, cn, email, sAMAccountName or other attributes depending on your LDAP/AD
- ldap_uid = uid
- #the scope to search for users, 1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE
- ldap_scope = 3
- #The password for the root user of mysql db, change this before any production use.
- db_password = root123
- #Turn on or off the self-registration feature
- self_registration = on
- #Determine whether the UI should use compressed js files.
- #For production, set it to on. For development, set it to off.
- use_compressed_js = on
- #Maximum number of job workers in job service
- max_job_workers = 3
- #The expiration time (in minute) of token created by token service, default is 30 minutes
- token_expiration = 30
- #Determine whether the job service should verify the ssl cert when it connects to a remote registry.
- #Set this flag to off when the remote registry uses a self-signed or untrusted certificate.
- verify_remote_cert = on
- #Determine whether or not to generate certificate for the registry's token.
- #If the value is on, the prepare script creates new root cert and private key
- #for generating token to access the registry. If the value is off, a key/certificate must
- #be supplied for token generation.
- customize_crt = on
- #Information of your organization for certificate
- crt_country = CN
- crt_state = State
- crt_location = CN
- crt_organization = organization
- crt_organizationalunit = organizational unit
- crt_commonname = example.com
- crt_email = example@example.com
- #The path of cert and key files for nginx, they are applied only the protocol is set to https
- ssl_cert = /etc/nginx/cert/reg.server.com.crt #文件位置不能变,必须是这个位置
- ssl_cert_key = /etc/nginx/cert/reg.server.com.key #文件位置不能变,必须是这个位置
修改prepare 源码(此步骤 仅仅在 ubuntu 16 中才需要执行)
vim /root/harbor/prepare 在第46 行不兼容python 3.5, ubuntu 16 默认时使用的python 3.5
将原来的 os.makedirs(path, mode=0600) 改为 os.makedirs(path, mode=0o600) 不然会报错。
备份 nginx 配置文件
mv /root/harbor/common/config/nginx/nginx.conf /root/harbor/common/config/nginx/nginx.conf.bak
拷贝 https 的配置文件到 /root/harbor/common/config/nginx/
cp /root/harbor/common/templates/nginx/nginx.https.conf /root/harbor/common/config/nginx/nginx.conf
拷贝证书
cp reg.server.com.crt reg.server.com.key /etc/nginx/cert/ (如果文件夹不存在,手动创建)
cp reg.server.com.crt reg.server.com.key /root/harbor/common/config/nginx/cert/
安装harbore
cd /root/harbor
./install.sh
安装完成后运行
docker ps 查看启动的容器,一共有6个
docker login reg.server.com (输入用户名密码,如果能成功登陆就成功 了)
过程中遇到的问题
x509: certificate signed by unknown authority
如果遇到这个问题,就是ca.crt 没有导入到本机信任列表中,运行下面命令解决
cp ca.crt /usr/local/share/ca-certificates/
update-ca-certificates
参考文档
https://github.com/vmware/harbor/blob/master/docs/configure_https.md
https://mritd.me/2016/09/15/Harbor-%E4%BC%81%E4%B8%9A%E7%BA%A7-Docker-Registry-%E7%AC%AC%E4%BA%8C%E5%BC%B9/
ubuntu 14.04 https 形式安装docker 私有库 harbor的更多相关文章
- 阿里云 ubuntu 14.04 模板上安装 docker
ubuntu 14.04 的内核是 3.13 ,所以内核不用升级. 安装过程例如以下: # apt-get update # apt-get install apt-transport-https # ...
- Ubuntu 14.04 LTS下安装Google Chrome浏览器
在Ubuntu 14.04下安装Google Chrome浏览器非常简单,只要到Chrome的网站下载Deb安装包并进行安装即可.当然你也可以使用APT软件包管理器来安装Google Chrome浏览 ...
- ubuntu 14.04 64位安装iNodeClient
ubuntu 14.04 64位安装iNodeClieng(华三校园客服端) http://pan.baidu.com/s/12dpxk ubuntu 14.04 64bit Install H3C ...
- Ubuntu 14.04 下手动安装Firefox的Flash插件
有时候我们不得不採用手动安装一些软件. Ubuntu 14.04 下手动安装Firefox的Flash插件有下面几步 1. 下载Flash插件 下载地址为http://get.adobe.com/cn ...
- 基于Ubuntu 14.04构建mysql5.6 Docker镜像
我们的目的是创建一个基于Ubuntu 14.04 的MySQL的 Docker Image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个 ...
- Ubuntu 14.04 python3.6 安装
参考 how-do-i-install-python-3-6-using-apt-get Ubuntu 14.04 python3.6 安装 sudo add-apt-repository ppa:j ...
- Linux ->> UBuntu 14.04 LTE下安装Hadoop 1.2.1(伪分布模式)
Hadoop的运行模式可分为单机模式.伪分布模式和分布模式. 首先无论哪种模式都需要安装JDK的,这一步之前的随笔Ubuntu 14.04 LTE下安装JDK 1.8中已经做了.这里就不多说了. 其次 ...
- 在Ubuntu 14.04 64bit上安装numpy和matplotlib库
原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战> ...
- 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad
简介 Haroopad:一款让你欲罢不能的Markdown编辑器 身为大程序员,我本来是不需要 Markdown 编辑器的,但是 Haroopad 让我简直欲罢不能,不能再爱更多.跨平台,代码高亮,V ...
随机推荐
- 学习jquery mobile
学习jquery mobile的时间不是很长,在学习的过程当中也遇到了很多令人抓狂的问题,在网上搜索问题答案的时候发现,现在关于jquery mobile的文章还不是很多,所以,我也是一边学习,一边摸 ...
- Netbeans 配置英文和默认utf-8编码
JAVA SDK 下载地址 http://www.oracle.com/technetwork/java/javase/downloads 解决办法: 进入netbeans 6.5\etc ,其中ne ...
- 《ASP.NET MVC4 WEB编程》学习笔记------HtmlHelper
本文转载自powerzhang,如果给您带来不便请联系博主. 在实际的程序中,除了在View中展示数据外,还需要在View与后台的数据进行交互,在View中我就需要用的表单相关的元素: 在MVC3框架 ...
- [Linux] AWK命令详解(大全)
转载自:http://caoyanbao.iteye.com/blog/570868 什么是awk? 你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk ...
- Android实现边缘凹凸的View
转载 最近做项目的时候遇到一个卡劵的效果,由于自己觉得用图片来做的话可以会出现适配效果不好,再加上自己自定义view方面的知识比较薄弱,所以想试试用自定义View来实现.但是由于自己知识点薄弱,一开始 ...
- RedHat6.2 下RRDTool安装方法
在安装ganglia的时候,需要安装ttdtol, 否则是不运去安装的.查可很多,这个可以. 我的环境: [hadoop@host8 ~]$ lsb_release -aLSB Version: :c ...
- Kafka学习笔记(一):概念介绍
Kafka是一个开源的,分布式的,高吞吐量的消息系统.随着Kafka的版本迭代,日趋成熟.大家对它的使用也逐步从日志系统衍生到其他关键业务领域.特别是其超高吞吐量的特性,在互联网领域,使用越来越广泛, ...
- jquery 展开折叠菜单
jquery 展开折叠菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <ht ...
- wp8 入门到精通
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Horizontal" ...
- 关于setTimeout的妙用前端函数节流
最近在某团队忙于一个项目,有这么一个页面,采用传统模式开发(吐槽它为什么不用React),它的DOM操作比较多,然后性能是比较差的,尤其当你缩放窗口时,可怕的事情发生了,出现了卡顿,甚至浏览器瘫痪.为 ...