Docker 使用过程中经常遇到的问题备忘

Q1: 基于Alpine构建的Docker镜像出现时间和宿主时间不同步问题,时区设置有问题

Alpine默认时区·UTC, 通过 Dockerfile 可修改时区设置,所有容器都将生效

1
2
3
4
5
RUN  echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/main' > /etc/apk/repositories && \                
     echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/community' >> /etc/apk/repositories && \
     apk update && apk add tzdata && \
     ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ 
     echo "Asia/Shanghai" > /etc/timezone

Q2: Docker pull很慢,需要docker加速器

加速器

配置

1
2
3
4
5
6
7
8
$ vim /lib/systemd/system/docker.service

# 找到 ExecStart=/usr/bin/dockerd
# 添加 --registry-mirror=<加速地址>
# ExecStart=/usr/bin/dockerd --registry-mirror=https://docker.mirrors.ustc.edu.cn/

$ systemctl daemon-reload
$ systemctl restart docker

配置文件修改:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "data-root": "/home/workspace/docker/data",
  "insecure-registry": [
    "<your_host_domain>:5000"
  ],
  "allow-nondistributable-artifacts": [
    "<your_host_domain>:5000"
  ],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://fasdhwsdf1.mirror.aliyuncs.com"
  ]
}

Q3: Docker 升级

CentOS 7

Note: docker 升级不会影响原有的镜像和容器 Ref Bolg

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
    # step1: remove old version
    
    $ yum remove docker docker-common docker-selinux docker-engine 

    # step2: install Docker CE
   
    $ yum install -y yum-utils device-mapper-persistent-data lvm2

    $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    $ yum install docker-ce

    $ systemctl start docker

    $ docker version

See Also

Thanks to the authors 🙂