一:安装docker

二:安装docker-compose

三:安装Harbor

四:配置Harbor使用https和2376端口

在/etc/docker 目录下面创建文件:create_tls_certs.sh的文件,内容如下:

#创建 Docker TLS 证书
#!/bin/bash

#相关配置信息
SERVER="101.200.154.43"
PASSWORD="pass123456"
COUNTRY="CN"
STATE="广州省"
CITY="广州市"
ORGANIZATION="sefon"
ORGANIZATIONAL_UNIT="Dev"
EMAIL="edrp@qq.com"

###开始生成文件###
echo "开始生成文件"

#切换到生产密钥的目录
cd /etc/docker
#生成ca私钥(使用aes256加密)
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 2048
#生成ca证书,填写配置信息
openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"

#生成server证书私钥文件
openssl genrsa -out server-key.pem 2048
#生成server证书请求文件
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
#使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem

#生成client证书RSA私钥文件
openssl genrsa -out key.pem 2048
#生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr

sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
#生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile.cnf

#更改密钥权限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem
#删除无用文件
#rm client.csr server.csr

echo "生成文件完成"
###生成结束###

然后执行:

sh create_tls_certs.sh

修改docker配置:

vim /usr/lib/systemd/system/docker.service

修改

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

为:

ExecStart=/usr/bin/dockerd   --tlsverify --tlscacert=/etc/docker/ca.pem  --tlscert=/etc/docker/server-cert.pem  --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376  -H unix:///var/run/docker.sock

重新加载Docker配置和重启Docker服务:

systemctl daemon-reload && systemctl restart docker

使用netstat -tunlp查看2376端口是否配置成功

同时使用客户端电脑,telnet登录下,是否成功

Harbor配置https

生成证书:

创建目录:

mkdri /data/cert

openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout ca.key -x509 -days 365 \
-out ca.crt -subj "/C=CN/L=guangzhou/O=chenfeng/CN=sefon"

(CN=sefon,此外网上好多是使用域名,我多测试后,不能使用域名)

openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout sefon.cferp.cn.key \
-out sefon.cferp.cn.csr -subj "/C=CN/L=guangzhou/O=chenfeng/CN=sefon.cferp.cn"

openssl x509 -req -days 365 \
-in sefon.cferp.cn.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out sefon.cferp.cn.crt

停止Harbor服务

docker-compose down -v

修改Harbor配置

vim harbor.cfg

hostname = sefon.cferp.cn

ui_url_protocol = https

ssl_cert = /data/cert/sefon.cferp.cn.crt

ssl_cert_key = /data/cert/sefon.cferp.cn.key

./prepare

服务器上直接访问:

[root@iZ2ze8mgdif90ed6xrhdx4Z /]# docker login sefon.cferp.cn
Username: admin
Password:
Error response from daemon: Get https://sefon.cferp.cn/v2/: x509: certificate signed by unknown authority

解决:

mkdir/certs.d
-bash: mkdir/certs.d: No such file or directory
[root@iZ2ze8mgdif90ed6xrhdx4Z docker]# mkdir certs.d
[root@iZ2ze8mgdif90ed6xrhdx4Z docker]# cd certs.d
[root@iZ2ze8mgdif90ed6xrhdx4Z certs.d]# mkdri sefon.cferp.cn
-bash: mkdri: command not found
[root@iZ2ze8mgdif90ed6xrhdx4Z certs.d]# mkdir sefon.cferp.cn
[root@iZ2ze8mgdif90ed6xrhdx4Z certs.d]# cd /data/cert
[root@iZ2ze8mgdif90ed6xrhdx4Z cert]# cp sefon.cferp.cn.crt /etc/docker/certs.d/sefon.cferp.cn

[root@iZ2ze8mgdif90ed6xrhdx4Z cert]# docker login sefon.cferp.cn
Username: admin
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

cent os 部署blade的更多相关文章

  1. 如何在Cent OS上安装和部署jdk与tomcat?

    Cent OS是一款Linux系统.在商业应用中,Linux操作系统在服务器市场有着广泛的运用,这源于Linux系统的几大优点: 1.跨平台的硬件支持 由于Linux 的内核大部分是用C 语言编写的, ...

  2. 在Cent OS云服务器上部署基于TP5后端代码踩坑记录_艾孜尔江撰

    推荐使用镜像安装Cent OS系统,或者在纯净安装完成之后在完成Apache+MySQL+PHP的时候不要每个单独安装,因为这样会出一些三者之间版本不配的问题,网上各种说法都有,查起来也非常困难,版本 ...

  3. vmware安装cent os 6.5 + oracle 11g xe + jboss eap 6.2 + weblogic 12c+ webshpere mq 7.5

    前言: mac系统发展速度确实很快,短短数年,mac os上已经能网银支付(中行.招行.工商.支付宝等均已全面支持mac os了),windows上的经典常用软件:qq.飞信.旺旺.有道词典.有道云笔 ...

  4. mac: vmware fusion中cent os启动假死的解决办法

    环境: mac os X 10.9.2 + vmware 6.0.2 + cent OS 6.5 minimal 现象: Booting CentOS (2.6.32-358.e.l6.i686) i ...

  5. Cent OS服务器配置(JDK+Tomcat+MySQL)

    本文摘自:Cent OS服务器配置(JDK+Tomcat+MySQL) 学习tar解压 解压 tar 文件 tar -zxvf apache-tomcat-6.0.35.tar.gz tomcat   ...

  6. VMware NAT模式 Cent OS IP配置

    1:首先VMware 桥接模式 CentOS ip 配置,关键点,ip的网关和DNS1设置成宿主机的网关和DNS 原理:桥接的模式就是通过物理网卡实现的. 2:以图展示VMware NAT模式 Cen ...

  7. cent os 6 安装 nginx

    cent os 6 默认的库是没有nginx的,所以直接 yum install nginx不行. 解决办法: $ wget http://nginx.org/packages/centos/6/no ...

  8. Cent os关机与重启命令详解

    Cent OS关机与重启命令详解 分类: Linux2012-10-02 14:06 5553人阅读 评论(0) 收藏 举报 centoslinuxsignallogin工作windows Linux ...

  9. Cent OS 常用 命令

    1.开机自动联网操作 需要root权限 vim /etc/sysconfig/network-scripts/ifcfg-p4p1(p4p1 为网络链接名称)这个文件, 把ONBOOT="n ...

随机推荐

  1. reflow和repaint理解总结

    repaint就是重绘,reflow就是回流 严重性: 在性能优先的前提下,reflow的性能消耗要比repaint的大. 体现: repaint是某个dom元素进行重绘,reflow是整个页面进行重 ...

  2. 7-zip命令行详解

    一.简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压软件. 主要特征: # 全新的LZMA算法加大了7z格式的压缩比 # 支持格式: * 压缩 / 解压缩:7z, XZ ...

  3. OKR究竟适不适合国内企业?

    某天见到知乎上有人提问,OKR在中国能行的通吗?细看下面的回复,多数人觉得大部分企业都是不适合的,他们认为让普通员工主动付出努力去达到更高的要求是不可能的,并且公司环境也不适合OKR的推行.但我却有不 ...

  4. 利用python画小猪佩奇

    import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.color((255,155,192),"pink&quo ...

  5. 【CF765F】Souvenirs

    [CF765F]Souvenirs 题面 洛谷 题解 我们可以发现,对于某个右端点\(i\),左端点\(j\)在由\(i\rightarrow 1\)的过程中,每一段的答案是单调不增的,由这个性质,我 ...

  6. SQL进阶-去重

    一.去重的2种基本方法 1.DISTINCT ## 建表: CREATE TABLE teacher( teacher_id ), teacher_name ), id_no ) ); CREATE ...

  7. 安装和启动ElasticSearch服务遇到的几个问题

    首先安装和启动服务的教程是参考文章:ES入门之一 安装ElasticSearch 然后在最后的启动es服务时遇到了几个小问题,因此在这里记录一下. 因为我对linux并不是很熟悉,因此文中如果有说错的 ...

  8. Python运行语法错误:IndentationError: unindent does not match any outer indentation level

    python脚本没有对齐.新的Python语法,是不支持的代码对齐中,混用TAB和空格的.

  9. 微信小程序之上传图片(含前后端代码例子)

    此代码示例,能够让你成功将图片上传至后端,后端做相应的处理,然后返回成功码. 前端小程序代码 index.wxml: <view class='content'> <view cla ...

  10. [技术博客] 用户验证码验证机制---redis缓存数据库的使用

    目录 问题引入 初识redis 实际应用 作者:马振亚 问题引入 在这次的开发过程中,我们的需求中有一个是普通用户可以通过特定的机制申请成为社长.因为只有部分人才能验证成功,所以这个最开始想了两种思路 ...