安装脚本
Ubuntu / Centos
Debian的安装貌似有问题, 需要解决安装源的问题。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun / AzureChinaCloud
如果在海外的AWS或者GCP等云服务器厂商, –mirror 自然不需要加上去了。
Centos在运行完成之后, 还需要手动的 sudo systemctl start docker.service 否则会提示docker没有启动之类的错误
日志相关
Grep String
正确的姿势:
docker logs nginx 2>&1 | grep "127."比如查看Jupyter Notebook的token:
docker logs notebook 2>&1 | grep "token"其他支持的参数
-f : 类似tail -f 命令
–since : 从某个时间戳开始,比如 2013-01-02T13:23:37 也支持相对时间,比如: 42m
–until : 与上类似, 不过是反过来。
-t, –timestamp : 显示时间戳
–tail N(default all) : 显示最后几行数据
Mount的技巧
比如Grafana 等,在docker image之中自带一些文件。如果直接mount对应的目录并且host目录为空, 那么docker内部的
目录就会被覆盖。如何处理这种情况呢?
简单粗暴的方法1:(思路only)
先运行一次, 然后使用 docker cp 命令将其复制出来
然后删除刚才的docker container, 将文件复制到对应的目录,再mount
更优雅一些的方法2:
以启动 ClickHouse 为例
# Step 1.1: 创建一个docker volume (目的: 把CH Server的配置暴露出来)
docker volume create --driver local
--opt type=none
--opt device=/home/centos/workspace/clickhouse/configs
--opt o=bind
ch-server-configs# Step 1.2 : 创建volume , mount 数据库数据
docker volume create --driver local
--opt type=none
--opt device=/home/centos/workspace/clickhouse/data
--opt o=bind
ch-server-data
# Step 2 : 启动 (注意: 当存储数据较多的时候, 第二次启动,会花比较长的时间来初始化。 初始化结束之前尝试链接会失败。)
sudo docker run -d --name mkt-ch-server
-v ch-server-configs:/etc/clickhouse-server
-v ch-server-data:/var/lib/clickhouse
--restart always
-p 9000:9000 -p 8123:8123
--ulimit nofile=262144:262144 yandex/clickhouse-server
这样docker镜像自带的配置文件就不会在第一次mount的时候被清空
定时任务
比如mysql需要定期导出数据备份。这个操作最好是利用宿主机的crond来完成
0 1 * * * docker exec mysqldump xxxx










