专栏首页solate 杂货铺docker 相关问题和快速使用命令

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

命令

清理none镜像

docker rmi $(docker images -f "dangling=true" -q) 

强制清空

docker rmi $(docker images -q) -f

docker时间问题

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

项目中打印日志时间和系统外部用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修改时区问题

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

Bug #5543

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

docker 报错

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • docker 安装和学习笔记

    层(Layer)其实是AUFS(Advanced Union File System, 一种联合文件系统)中的概念,是实现增量保存于更新的基础。

    solate
  • go 数据库相关

    创建db后并不需要自己去使用db.Close()去关闭,虽然提供了这样关闭方法但是完全不需要使用。

    solate
  • go alpine docker image 搭建

    Containerize This! How to build Golang Dockerfiles

    solate
  • 『中级篇』overlay网络和etcd实现多机的容器通信(31)

    PS:本次通过第三方工具etcd分布式的方式完成2台机器,2个容器组件网络,实现相互的访问,这里只是通过ping的方式,如果按照上次说的 flask-redis...

    IT故事会
  • Devops step by step

    接着上次分享的devops历程[Followme Devops实践之路], 大家希望能够出一个step by step手册, 那今天我就来和手把手来一起搭建这么...

    张善友
  • Docker的安装以及加速器的配置

    目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内...

    Python编程与实战
  • 基于Docker+Jenkins+Git的集成开发环境搭建

    Docker是基于Go语言编写, 用于解决运行环境和配置问题的软件容器 , 并方便做持续集成和整体发布的开源容器引擎 Docker详细内容学习 Docker...

    时间静止不是简史
  • 6.Docker使用辅助工具汇总

    more information: https://docs.docker.com/engine/security/security/#docker-daemo...

    WeiyiGeek
  • 框架 | SpringBoot项目发布到自动化容器Docker步骤

    码神联盟
  • docker学习(1) 安装

    docker是啥就不多讲了,简言之就是更轻量、更牛叉的新一代虚拟机技术。下面是安装步骤: 一、mac/windows平台的安装 docker是在linux内核基...

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券