0%

一、背景介绍

docker volume 可以使我们在启动docker容器时,动态的挂载一些文件(如配置文件), 以覆盖镜像中原有的文件,但是,挂载一个主机上尚不存在的文件夹或者文件到容器中会怎样呢?LZ在工作中就遇到了这样的问题,故自己实践了一下,记录实验结果如下:

二、文件夹挂载

docker在文件夹挂载上的行为是统一的,具体表现为:

  • 若文件夹不存在,则先创建出文件夹(若为多层文件夹,则递归创建)
  • 用host上的文件夹内容覆盖container中的文件夹内容

docker run -v /path-to-folder/A:/path-to-folder/B test-image

详细说明如下:

阅读全文 »

一、python打包创建SDK

1、首先,我们需要一个工具包来协助我们完成python打包的任务

1
pip3 install setuptools

2、之后封装好你的项目api

目录结构

├─python-sdk
│ │ README.md
│ │ setup.py
│ └─Demo
|            | demo.py
|           │ __init__.py
|

Demo/demo.py.py中只有一个输出函数demo(),这里可以自行封装自己的api

阅读全文 »

ERROR Error while accepting connection (kafka.network.Acceptor)
No file descriptors available
修改服务器中docker的ulimit配置

阅读全文 »

Charles 的安装与使用
苹果手机和安卓手机安装charles安全证书
Charles的破解方法
Android 7.0以上手机抓包方式(抓取https,亲测有用)

阅读全文 »

今天在阿里云部署服务的时候报如下错:

1
2
3
4
5
6
7
8
9
10
root@iZ2zeagh7rzys1hl53collZ:~/data/csh_bk/docker# docker-compose -f nginx/docker-compose.yml up
Creating nginx ...
Creating nginx ... error

ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint nginx (84a2d44102b6fd874d94c52c199958bbb88214bf31890d9a66e264336f2a9794): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 172.20.0.2:80 ! -i br-90c5e5593694: iptables: No chain/target/match by that name.
(exit status 1))

ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint nginx (84a2d44102b6fd874d94c52c199958bbb88214bf31890d9a66e264336f2a9794): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 172.20.0.2:80 ! -i br-90c5e5593694: iptables: No chain/target/match by that name.
(exit status 1))
ERROR: Encountered errors while bringing up the project.

1、本身部署服务需要按照Nginx mysql redis
2、安装完成后去阿里云设置安全组,打开对应的端口
3、打开后发现mysql和redis都可以访问 但是Nginx无法访问
4、后来发现是不小心动了防火墙,导致docker异常,重启docker服务,然后再重启对应服务即可

1
systemctl restart docker

原因:

docker服务启动时定义的自定义链DOCKER由于 centos7 firewall 被清掉

firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。

当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。

当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后再启动 或者重启 firewalld ,你就需要重启 Docker 进程了。

重启docker服务及可重新生成自定义链DOCKER

参考:https://blog.csdn.net/liyanhui1001/article/details/107507847

1
2
3
4
5
6
7
8
9
10
function latest_log(){
for i in $(ls -th $1); do
if [[ -f $1$i ]]; then
log=$i
break;
fi
done
echo $log
tail -f $1$log
}

今天在用docker-compose 部署Apache DolphinScheduler的时候在我的mac上报如下的错,但是服务器上是正常的,正常来讲用docker部署项目不应该出现这种问题,上网查了很多,说是初始化Zookeeper连接时,将接收超时参数值调整大一些即可(tickTime2000改为10000),默认是毫秒(ms),但是还是不行,后来看到一篇文章说可能是docker内存不够的关系,后来将docker内存从2G跳到了4G好了,但感觉不太像是这个问题,所以记录一下

1
2
3
4
5
6
7
8
9
2021-02-27 19:21:26,435 [myid:1] - WARN  [NIOWorkerThread-1:NIOServerCnxn@364] - Unexpected exception
EndOfStreamException: Unable to read additional data from client, it probably closed the socket: address = /172.21.0.5:39431, session = 0x0
at org.apache.zookeeper.server.NIOServerCnxn.handleFailedRead(NIOServerCnxn.java:163)
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:326)
at org.apache.zookeeper.server.NIOServerCnxnFactory$IOWorkRequest.doWork(NIOServerCnxnFactory.java:522)
at org.apache.zookeeper.server.WorkerService$ScheduledWorkRequest.run(WorkerService.java:154)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

查看Nginx日志,发现有很多报错

1
2
3
4
2021/02/27 17:00:54 [warn] 28#28: *49939
an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/6/14/0000000146 while reading upstream, client: xxx.xxx.xxx.x,
server: airflow.yidianshihui.com, request: "GET /home HTTP/1.1", upstream: "http://xxx.xxx.xxx.xxx:xxxx/home", host: "airflow.yidianshihui.com",
referrer: "http://airflow.yidianshihui.com/home?tags=%E6%AF%8F%E6%97%A5ic_sku%E5%90%8C%E6%AD%A5"

1.错误日志:warn:an upstream response is buffered to a temporary file

解决办法:增加fastcgi_buffers      8 4K;     fastcgi_buffer_size  4K;

2. a client request body is buffered to a temporary file

解决办法:增加client_max_body_size 2050m; client_body_buffer_size 1024k;

阅读全文 »

昨天在用docker部署mysql的时候一直报错

1
2
3
4
5
6
2020-06-23T09:59:47.339758Z 0 [Note] Skipping generation of SSL certificates as certificate files are present in data directory.
2020-06-23T09:59:47.340593Z 0 [Warning] CA certificate ca.pem is self signed.
2020-06-23T09:59:47.340636Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory.
2020-06-23T09:59:47.340852Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2020-06-23T09:59:47.340867Z 0 [ERROR] Unable to setup unix socket lock file.
2020-06-23T09:59:47.340872Z 0 [ERROR] Aborting

解决方法:
这里可以看到mysqld.sock的目录是在/var/run/mysqld目录下,但是这个目录,我们并没有挂载主机目录,下面我们重新运行mysql容器,挂载相应的容器

1
2
3
4
volumes:
- /data/mysql-data:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d/
- /data/mysql-data/mysqld:/var/run/mysqld

参考:
docker安装mysql及相关配置、运行细节和常见报错解决方案

复制

ditto

1
ditto -V -x -k --sequesterRsrc --rsrc xxxx-img-1.zip xxxx-img-1

切割

split

1
split -b 102400000   Joker.小丑.2019.中英字幕.WEBrip.720P-人人影视.mp4