使用Nexus3搭建docker registry

Nexus 3.0 的三种docker仓库:

  1. docker (proxy) 代理和缓存远程仓库 ,只能pull
  2. docker (hosted) 托管仓库 ,私有仓库,可以push和pull
  3. docker (group) 将多个proxy和hosted仓库添加到一个组,只访问一个组地址即可,只能pull

前提:安装配置好了Java运行环境

[阅读全文]

cmd+h和cmd+m

  • cmd + m:是对「窗口」的操作,cmd + m是最小化窗口
  • cmd + h:是对「应用程序」的操作,cmd + h是隐藏当前程序
  • cmd + m:最小化当前窗口
  • cmd + option + m:会最小化当前程序所有窗口
  • cmd + h:隐藏当前程序
  • cmd + option + h:隐藏除当前应用程序之外所有程序窗口

golang如何进行交叉编译

问题

golang如何在一个平台编译另外一个平台可以执行的文件。比如在mac上编译Windows和linux可以执行的文件。那么我们的问题就设定成:如何在mac上编译64位linux的可执行文件。

[阅读全文]

docker registry

registry和registry-web配合使用Token认证的问题

之前使用的是htpasswd方式,但registry-web需要使用token方式。

其原理很重要,需要搞明白:

  • 先生成key和密钥,分别部署于registry和registry-web
  • 在registry中配置token认证方式realm地址为registry-web的地址
  • 在registry-web中配置的url为registry的api地址

当前测试可用的配置:

[阅读全文]

关于中间证书的坑

某客户购买GlobalSign的通配符证书 在测试过程中发现,某些Android手机总是报证书不可信,且证书链长度为1,提示没有配置完整证书链

最终问客户要到了中间证书,添加到服务器证书后面,解决。 添加过程仍然有坑! 1、服务器证书在前面,中间证书加在后面 2、对空格和回车换行有要求!

[阅读全文]

修改tomcat容器时区

默认tomcat容器时区为UTC0,与中国东8区相差8小时

会导致某些依赖时间的应用获取时间不正确,如:xxl-job-admin,设置的cron中指定了小时级以上则会不正常执行(小时级以下不涉及具体时区)

[阅读全文]

Docker环境变量

  1. env_file,environment中定义的环境变量是传给container用的,不是在docker-compose.yml中的环境变量用的
  2. docker-compose.yml中的环境变量${VARIABLE:-default}引用的是在.env中定义的或者同个shell export出来的
  3. docker-compose中替换.env文件变量的研究,.env文件的环境变量:
    1. 只能用大写
    2. 不能出现".“号
    3. 可以用”_"
    4. 只能用在up -d

后记:不用太过研究,限制多,且应用得少

[阅读全文]

*nix快捷键集锦

Ctrl + a,切换到命令行开始。这个操作跟Home实现的结果一样的,但Home在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是有效的;另外,在windows的许多文件编辑器里,这个也是有效的。

[阅读全文]

关于Dockerfile

  1. ARG和ENV ARG指令定义了用户可以在编译时或者运行时传递的变量,如使用如下命令:–build-arg = ENV指令是在dockerfile里面设置环境变量,不能在编译时或运行时传递。 ARG和ENV的有效结合:ARG var ENV var=${var}

    [阅读全文]
docker 

基于容器的MySQL定时备份数据库

注:以下使用mysqldump方式备份会导致锁表,生产环境备份建议使用xtrabackup

  1. 将如下内容添加至:/data/backup.sh
1
2
3
docker exec -i data_mysql_1 mysqldump -uroot -pPassword dbname > /data/`date +%Y%m%d`.sql \
	&& tar -zcvf `date +%Y%m%d`.tar.gz `date +%Y%m%d`.sql \
	&& rm -fr /data/`date +%Y%m%d`.sql
  1. 添加执行权限:
1
sudo chmod +x /data/backup.sh
  1. 在宿主机加定时调度,每天凌晨1点执行:crontab -e
1
0 1 * * * /bin/bash /data/backup.sh

docker exec -i不能加t,也不需要加t!!!这里坑了很久!

[阅读全文]