docker registry auth权限认证搭建

docker registry官方默认的权限认证是pull和push都需要密码. 线上私有镜像仓库有个需求, pull不需要密码, 仅push需要密码, 这样线上应用不用更新逻辑, 从而增加registry的安全性, 不会被人使黑删除或覆盖镜像. 参考了 https://medium.com/@maanadev/authorization-for-private-docker-registry-d1f6bf74552f https://github.com/cesanta/docker_auth 搭建过程中间有一些坑. 首先搭建go环境,

注意: go项目要放到/opt/goProject/src/目录下

  安装docker-compose后, 这是我的compose文件:

  这是docker-auth配置文件:

这是compose根目录文件结构:

  其中: registry-web是做web端管理界面 详细的权限控制(https://github.com/cesanta/docker_auth/blob/master/examples/reference.yml):

 

sed 用法总结

一个不错的网站,C语言中文网,包罗万象,非常详细:http://c.biancheng.net/ 1.sed替换换行符及标签的使用

解析:以上命令实现不了替换换行符,这跟sed的行处理方式有关,sed读取一行时,会先把换行符去掉,处理完后再添加上,所以是无法使用上面的命令进行换行符替换的,必须使用sed中的其它命令来完成。上面的恢复可以使用tr命令:

以下命令能实现替换文本中全部换行符:

解析: :label;  这是一个标签,用来实现跳转处理,名字可以随便取(label),后面的b label就是跳转指令 N;  N是sed的一个处理命令,追加文本流中的下一行到模式空间进行合并处理,因此是换行符可见 s/\n/:/;   s是sed的替换命令,将换行符替换为冒号 b label  或者 t label    b / t 是sed的跳转命令,跳转到指定的标签处 2.sed输出奇数行和偶数行 a.

解析:n表示读取下一个输入行,用下一个命令处理新的行而不是第一个命令。 b.

解析:第一个数字表示起始行,第二个数字表示步长。 3.在字符之间插入空格

解析:&表示前面匹配到的内容。   sed -n ‘1,3 p’ a.txt  #sed 命令 -n(sed的命令行选项—-取消标准输出) 1,3 (读到缓冲区处理的地址范围) p(sed命令–这个命令表示要怎样处理缓冲区的内容,p是打印输出缓存区内容) sed -n ‘1,3 Read more…