前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker 相关问题和快速使用命令

docker 相关问题和快速使用命令

作者头像
solate
发布2019-07-22 17:33:31
1K0
发布2019-07-22 17:33:31
举报
文章被收录于专栏:solate 杂货铺

命令

清理none镜像

代码语言:javascript
复制
docker rmi $(docker images -f "dangling=true" -q) 

强制清空

代码语言:javascript
复制
docker rmi $(docker images -q) -f

docker时间问题

日志打印时间和系统时间差8个小时

项目中打印日志时间和系统外部用date命令打印的时间差了8个小时。

问题原因:

外部虽然修改了时区和时间,但是docker容器中的时间并没有修复,所以需要将外部的文件引入到内部里。

解决的方式在dockerfile 里添加一句

代码语言:javascript
复制
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

但是docker 好像不能直接从外部copy, 所以上面这个一般不能成功

所以需要将/usr/share/zoneinfo/Asia/Shanghai, Shanghai拷贝到和Dockerfile同一个目录

然后使用命令

代码语言:javascript
复制
COPY Shanghai /etc/localtime

这个时候docker 里面的utc时间就转换成了中国时间,就不会少了8个小时

使用alpine修改时区问题

上面修改时区的 在使用alpine的时候处理怎么都不能转换成功,google到一个解决方法

Bug #5543

代码语言:javascript
复制
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
/ # 

根据这个例子我的修改是

代码语言:javascript
复制
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时间

代码语言:javascript
复制
RUN apk update && apk add ca-certificates && \
    apk add tzdata && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

但是这个还是不能用,所以改成了下面这种形式,然后就可以了

代码语言:javascript
复制
RUN apk add -U tzdata && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

docker 报错

代码语言:javascript
复制
Error response from daemon: service endpoint with name docker-statsd-influxdb-grafana already exists.

Docker Error response from daemon: service endpoint with name.

处理

代码语言:javascript
复制
docker network inspect <network name>
docker network disconnect <network name> <container id/ container name>

例如

代码语言:javascript
复制
docker network disconnect --force bridge docker-statsd-influxdb-grafana

或者直接重启docker

代码语言:javascript
复制
sudo service docker restart
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命令
    • 清理none镜像
    • docker时间问题
      • 日志打印时间和系统时间差8个小时
        • 使用alpine修改时区问题
        • docker 报错
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档