docker 相關問題和快速使用命令

命令

清理none鏡像

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

強制清空linux

docker rmi $(docker images -q) -f

docker時間問題

日誌打印時間和系統時間差8個小時

項目中打印日誌時間和系統外部用date命令打印的時間差了8個小時。docker

問題緣由:fetch

外部雖然修改了時區和時間,可是docker容器中的時間並無修復,因此須要將外部的文件引入到內部裏。google

解決的方式在dockerfile 裏添加一句rest

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

可是docker 好像不能直接從外部copy, 因此上面這個通常不能成功日誌

因此須要將/usr/share/zoneinfo/Asia/Shanghai, Shanghai拷貝到和Dockerfile同一個目錄code

而後使用命令cdn

COPY Shanghai /etc/localtime

這個時候docker 裏面的utc時間就轉換成了中國時間,就不會少了8個小時flux

使用alpine修改時區問題

上面修改時區的 在使用alpine的時候處理怎麼都不能轉換成功,google到一個解決方法get

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
相關文章
相關標籤/搜索