Docker 18.09开始,拆分为"engine", “cli”, and “containerd”,需要分别单独下载和安装。 如:containerd.io-1.2.0-3.el7.x86_64.rpm、docker-ce-18.09.0-3.el7.x86_64.rpm、docker-ce-cli-18.09.0-3.el7.x86_64.rpm
[阅读全文]emqx集群搭建
最近使用emqx替换原来mosca,公司要求搭建集群模式,本文记录简要过程。
EMQ X 版本支持多种策略的节点自动发现与集群:
策略 | 说明 |
---|---|
manual | 手工命令创建集群 |
static | 静态节点列表自动集群 |
mcast | UDP 组播方式自动集群 |
dns | DNS A 记录自动集群 |
etcd | 通过 etcd 自动集群 |
k8s | Kubernetes 服务自动集群 |
想尝试manual,终觉太麻烦,直接放弃;试过mcast,在同一个compose内还可以,跨机则不行,估计是因是docker网桥在与跨机器的组播是有问题的,没有深究,但还是很看好这种方式的,以后如果能做基于k8s的集群可以继续研究一下;nds/etcd/k8s因为目前没有涉及,只放放弃;那么就剩下static,规模不是太大的情况下,也不是太麻烦,简单记录一下:
[阅读全文]docker registry
registry和registry-web配合使用Token认证的问题
之前使用的是htpasswd方式,但registry-web需要使用token方式。
其原理很重要,需要搞明白:
- 先生成key和密钥,分别部署于registry和registry-web
- 在registry中配置token认证方式realm地址为registry-web的地址
- 在registry-web中配置的url为registry的api地址
当前测试可用的配置:
[阅读全文]修改tomcat容器时区
默认tomcat容器时区为UTC0,与中国东8区相差8小时
会导致某些依赖时间的应用获取时间不正确,如:xxl-job-admin,设置的cron中指定了小时级以上则会不正常执行(小时级以下不涉及具体时区)
[阅读全文]Docker环境变量
- env_file,environment中定义的环境变量是传给container用的,不是在docker-compose.yml中的环境变量用的
- docker-compose.yml中的环境变量${VARIABLE:-default}引用的是在.env中定义的或者同个shell export出来的
- docker-compose中替换.env文件变量的研究,.env文件的环境变量:
- 只能用大写
- 不能出现".“号
- 可以用”_"
- 只能用在up -d
后记:不用太过研究,限制多,且应用得少
[阅读全文]关于Dockerfile
-
ARG和ENV ARG指令定义了用户可以在编译时或者运行时传递的变量,如使用如下命令:–build-arg = ENV指令是在dockerfile里面设置环境变量,不能在编译时或运行时传递。 ARG和ENV的有效结合:ARG var ENV var=${var}
[阅读全文]
基于容器的MySQL定时备份数据库
注:以下使用mysqldump方式备份会导致锁表,生产环境备份建议使用xtrabackup
- 将如下内容添加至:/data/backup.sh
|
|
- 添加执行权限:
|
|
- 在宿主机加定时调度,每天凌晨1点执行:crontab -e
|
|
docker exec -i不能加t,也不需要加t!!!这里坑了很久!
[阅读全文]清理docker数据
- 卷:docker volume prune
- 镜像:docker image prune
- 网络:docker network prune
- 全部:docker system prune
参考 https://baijiahao.baidu.com/s?id=1585050408747400708&wfr=spider&for=pc
Docker配置文件
默认dockerd全局配置文件在/etc/docker/daemon.json,该文件默认不存在,创建就好了,常用内容:
|
|
设置docker主目录,docker运行产生的数据都保存在这里,如镜像、容器、日志、卷等,会占用较大空间,默认在/var/docker下,务必修改!!!
[阅读全文]docker保存和加载镜像
背景:
有一些自定义的镜像,不想通过dockerfile创建,没有仓库或者不想上传到仓库中,可以使用保存和加载命令实现环境迁移
保存
|
|
加载:
|
|