docker rmi $(docker images -f "dangling=true" -q)
强制清空
docker rmi $(docker images -q) -f
项目中打印日志时间和系统外部用date命令打印的时间差了8个小时。
问题原因:
外部虽然修改了时区和时间,但是docker容器中的时间并没有修复,所以需要将外部的文件引入到内部里。
解决的方式在dockerfile 里添加一句
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
但是docker 好像不能直接从外部copy, 所以上面这个一般不能成功
所以需要将/usr/share/zoneinfo/Asia/Shanghai
, Shanghai拷贝到和Dockerfile同一个目录
然后使用命令
COPY Shanghai /etc/localtime
这个时候docker 里面的utc时间就转换成了中国时间,就不会少了8个小时
上面修改时区的 在使用alpine的时候处理怎么都不能转换成功,google到一个解决方法
docker run -it --rm alpine /bin/sh //进入你自己要修改的容器中 / # date Sun May 8 20:46:18 UTC 2016 / # apk add -U tzdata fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/community/x86_64/APKINDEX.tar.gz (1/1) Installing tzdata (2015g-r0) Executing busybox-1.24.1-r7.trigger OK: 8 MiB in 12 packages / # cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime / # date Sun May 8 22:46:45 CEST 2016 / #
根据这个例子我的修改是
docker exec -it b961dccc5807 /bin/sh date //Sat Sep 9 11:26:48 UTC 2017 apk add -U tzdata cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime date // Sat Sep 9 19:30:55 CST 2017
但是这样每次需要去改容器,就想怎么把这个写到Dockerfile中
然后搜到了这篇 (Linux下修改时区)[http://www.itfanr.cc/2017/02/23/modify-timezone/]
Docker + Alpine 下修改utc时间为cst时间
RUN apk update && apk add ca-certificates && \ apk add tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone
但是这个还是不能用,所以改成了下面这种形式,然后就可以了
RUN apk add -U tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone
Error response from daemon: service endpoint with name docker-statsd-influxdb-grafana already exists.
Docker Error response from daemon: service endpoint with name.
处理
docker network inspect <network name> docker network disconnect <network name> <container id/ container name>
例如
docker network disconnect --force bridge docker-statsd-influxdb-grafana
或者直接重启docker
sudo service docker restart
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句