“Docker入门”的版本间的差异
(→容器关不了) |
|||
(未显示同一用户的21个中间版本) | |||
第1行: | 第1行: | ||
+ | =进阶= | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | 如果要方便 怕权限问题 放到/tmp | ||
+ | docker cp :用于容器与主机之间的数据拷贝。 | ||
+ | 1、从主机往容器中拷贝 | ||
+ | eg:将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。 | ||
+ | |||
+ | docker cp /www/runoob 96f7f14e99ab:/www/ | ||
+ | |||
+ | 2、将容器中文件拷往主机 | ||
+ | eg:将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。 | ||
+ | |||
+ | docker cp 96f7f14e99ab:/www /tmp/ | ||
+ | |||
+ | eg:将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。 | ||
+ | |||
+ | docker cp /www/runoob 96f7f14e99ab:/www | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | [https://my.oschina.net/u/4169309/blog/4692251 调试 Docker 容器内部进程] | ||
+ | |||
=入门= | =入门= | ||
+ | |||
=场景= | =场景= | ||
Docker通常用于如下场景: | Docker通常用于如下场景: | ||
第108行: | 第133行: | ||
[[DockerHub镜像加速]] | [[DockerHub镜像加速]] | ||
+ | ==docker pull proxy== | ||
+ | <pre> | ||
+ | |||
+ | mkdir /etc/systemd/system/docker.service.d/ | ||
+ | vim /etc/systemd/system/docker.service.d/http-proxy.conf | ||
+ | [Service] | ||
+ | Environment="HTTP_PROXY=http://192.168.10.105:1080" | ||
+ | Environment="HTTPS_PROXY=http://192.168.10.105:1080" | ||
+ | |||
+ | systemctl daemon-reload | ||
+ | systemctl restart docker | ||
+ | |||
+ | |||
+ | |||
+ | docker pull alpine | ||
+ | Using default tag: latest | ||
+ | latest: Pulling from library/alpine | ||
+ | 43c4264eed91: Pull complete | ||
+ | Digest: sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d | ||
+ | Status: Downloaded newer image for alpine:latest | ||
+ | docker.io/library/alpine:latest | ||
+ | |||
+ | </pre> | ||
+ | [https://neucrack.com/p/286 docker 设置代理,以及国内加速镜像设置 ] | ||
=====see also===== | =====see also===== | ||
第142行: | 第191行: | ||
=docker常用命令= | =docker常用命令= | ||
− | + | [https://www.cnblogs.com/yinzhengjie/p/12189729.html Docker容器操作基础命令] | |
<pre> | <pre> | ||
docker inspect --format='{{.LogPath}}' containername | docker inspect --format='{{.LogPath}}' containername | ||
+ | docker logs docker日志 | ||
#日志过滤 | #日志过滤 | ||
docker logs xx -f 2>&1| grep --line-buffered xxx | docker logs xx -f 2>&1| grep --line-buffered xxx | ||
+ | |||
+ | docker logs -f --tail 10 a4dac74d48f7 | ||
第196行: | 第248行: | ||
3f08dc4f3f5d 本地镜像ID docker images name 命令可查看ID eg #docker images jenkins | 3f08dc4f3f5d 本地镜像ID docker images name 命令可查看ID eg #docker images jenkins | ||
+ | docker-compose | ||
+ | a.yml | ||
+ | networks: | ||
+ | - d_net | ||
+ | container_name: "compose-mysql" | ||
第221行: | 第278行: | ||
</pre> | </pre> | ||
+ | ==docker logs== | ||
+ | <pre> | ||
+ | docker logs --tail=10 | ||
+ | |||
+ | docker logs --since="2016-07-01" --tail=10 mynginx #查看容器mynginx从2016年7月1日后的最新10条日志。 | ||
+ | </pre> | ||
+ | |||
+ | https://docs.docker.com/engine/reference/commandline/logs/ | ||
+ | |||
[https://www.cnblogs.com/everfight/p/docker_log_explain.html [译<nowiki>]</nowiki>如何将docker日志重定向到单个文件里 ] | [https://www.cnblogs.com/everfight/p/docker_log_explain.html [译<nowiki>]</nowiki>如何将docker日志重定向到单个文件里 ] | ||
[https://www.jianshu.com/p/bf2eb121ac62 将日志输出到Docker容器外] | [https://www.jianshu.com/p/bf2eb121ac62 将日志输出到Docker容器外] | ||
+ | |||
+ | |||
+ | [https://www.runoob.com/docker/docker-logs-command.html Docker logs 命令] | ||
+ | |||
+ | [https://www.cnblogs.com/CloudMan6/p/7749304.html 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87) ] | ||
+ | |||
+ | [https://cloud.tencent.com/developer/article/1486571 Docker logs 查看实时日志(日志最后的N行、某刻后日志] | ||
== docker run VS docker exec== | == docker run VS docker exec== | ||
第231行: | 第304行: | ||
[https://yq.aliyun.com/articles/640877 “docker run”VS“docker exec这两个命令有区别] | [https://yq.aliyun.com/articles/640877 “docker run”VS“docker exec这两个命令有区别] | ||
+ | ==docker 环境变量== | ||
+ | <pre> | ||
+ | 格式有两种: | ||
+ | |||
+ | ENV key value | ||
+ | ENV key1=value1 key2=value2 | ||
+ | |||
+ | |||
+ | root@debian11:~# cat ins | ||
+ | docker run -d \ | ||
+ | --restart=unless-stopped \ | ||
+ | --env KUBOARD_ADMIN_DERAULT_PASSWORD=evan123456 \ #这行就是我添加的环境变量 | ||
+ | --name=kuboard \ | ||
+ | -p 80:80/tcp \ | ||
+ | -p 10081:10081/tcp \ | ||
+ | -e KUBOARD_ENDPOINT="http://192.168.10.175:80" \ | ||
+ | -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \ | ||
+ | -v /data/kuboard-data:/data \ | ||
+ | eipwork/kuboard:v3 | ||
+ | </pre> | ||
+ | |||
+ | [https://www.cnblogs.com/KbMan/p/12029758.html Docker环境变量设置] | ||
+ | |||
+ | [https://www.cnblogs.com/vickey-wu/p/11079813.html 在docker镜像中加入环境变量] | ||
+ | |||
+ | ==查看docker容器的资源使用docker stats == | ||
+ | <pre> | ||
+ | Demonstrate how you would log the resource usage of the containers every 10 seconds. | ||
+ | |||
+ | cat 10s.sh | ||
+ | watch -n 10 "sudo docker stats nginx1.15 --no-stream " | ||
+ | </pre> | ||
+ | |||
+ | [https://blog.csdn.net/ternence_hsu/article/details/103399994 查看docker容器的资源使用详情] | ||
+ | |||
+ | [https://docs.docker.com/engine/reference/commandline/stats/ docker stats] | ||
− | =数据交互 docker中宿主机与容器(container)互相拷贝传递文件= | + | [https://www.cnblogs.com/sparkdev/p/7821376.html 查看 docker 容器使用的资源] |
+ | |||
+ | [https://cloud.tencent.com/developer/article/1541435 如何获得Docker容器资源统计信息] | ||
+ | |||
+ | =docker cp 数据交互 docker中宿主机与容器(container)互相拷贝传递文件= | ||
<pre> | <pre> | ||
Docker容器和主机如何互相拷贝传输文件 | Docker容器和主机如何互相拷贝传输文件 | ||
第244行: | 第357行: | ||
将容器30026605dcfe的/home/cloudera/RS-MapReduce目录拷贝到主机的/tmp目录中。 | 将容器30026605dcfe的/home/cloudera/RS-MapReduce目录拷贝到主机的/tmp目录中。 | ||
docker cp 30026605dcfe:/home/cloudera/RS-MapReduce /tmp/</pre> | docker cp 30026605dcfe:/home/cloudera/RS-MapReduce /tmp/</pre> | ||
+ | =与DockerFile= | ||
+ | [https://www.cnblogs.com/liaojiafa/p/6151768.html Docker探索系列2之镜像打包与DockerFile ] | ||
+ | =docker build Dockerfile= | ||
+ | <pre> | ||
+ | |||
+ | ➜ hellodocker cat index.js | ||
+ | console.log("welcome to docker world") | ||
+ | ➜ hellodocker cat Dockerfile | ||
+ | FROM node:14-alpine | ||
+ | COPY index.js /index.js | ||
+ | CMD node /index.js | ||
+ | |||
+ | |||
+ | sudo docker build -t hello-docker . | ||
+ | |||
+ | |||
+ | ➜ hellodocker sudo docker run hello-docker | ||
+ | welcome to docker world | ||
+ | ➜ hellodocker | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | </pre> | ||
=trouble= | =trouble= | ||
+ | == docker login == | ||
+ | <pre> | ||
+ | login 问题 | ||
+ | |||
+ | -sfo2-01:~# docker login --username= registry.cn-hangzhou.aliyuncs.com | ||
+ | Password: | ||
+ | Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY` | ||
+ | |||
+ | |||
+ | apt install gnupg2 pass | ||
+ | 2-01:~# docker login --username= registry.cn-hangzhou.aliyuncs.com | ||
+ | Password: | ||
+ | WARNING! Your password will be stored unencrypted in /root/.docker/config.json. | ||
+ | Configure a credential helper to remove this warning. See | ||
+ | https://docs.docker.com/engine/reference/commandline/login/#credentials-store | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | |||
==容器关不了 == | ==容器关不了 == | ||
<pre> | <pre> | ||
第271行: | 第428行: | ||
[https://www.jianshu.com/p/813d8362d497 Docker stop或者Docker kill为何不能停止容器] | [https://www.jianshu.com/p/813d8362d497 Docker stop或者Docker kill为何不能停止容器] | ||
+ | |||
+ | https://www.cnblogs.com/shoufu/p/12978843.html | ||
<pre> | <pre> | ||
第303行: | 第462行: | ||
[https://www.cnblogs.com/followyou/p/10315717.html docker及服务器遇到的坑] | [https://www.cnblogs.com/followyou/p/10315717.html docker及服务器遇到的坑] | ||
− | = | + | =references= |
+ | |||
+ | [https://www.bilibili.com/video/BV14s4y1i7Vf?p=9&vd_source=e3e41ea2b1d70e0e3a6a0372ee88d714 B站30分钟Docker入门教程] | ||
+ | |||
[[Docker国内镜像的配置及使用]] | [[Docker国内镜像的配置及使用]] |
2024年10月20日 (日) 15:40的最新版本
目录
进阶
如果要方便 怕权限问题 放到/tmp docker cp :用于容器与主机之间的数据拷贝。 1、从主机往容器中拷贝 eg:将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。 docker cp /www/runoob 96f7f14e99ab:/www/ 2、将容器中文件拷往主机 eg:将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。 docker cp 96f7f14e99ab:/www /tmp/ eg:将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。 docker cp /www/runoob 96f7f14e99ab:/www
入门
场景
Docker通常用于如下场景: web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中。由于RHEL6和CentOS6的内核版本为2.6,因此必须要先升级内核。
加速
安装
Docker and docker-compose快速安装 看这看这
官方教程
install-using-the-repository
# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 systemctl enable docker && systemctl start docker # 注意: # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。 # vim /etc/yum.repos.d/docker-ce.repo # 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1 # # 安装指定版本的Docker-CE: # Step 1: 查找Docker-CE的版本: # yum list docker-ce.x86_64 --showduplicates | sort -r # Loading mirror speeds from cached hostfile # Loaded plugins: branch, fastestmirror, langpacks # docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable # docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable # docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable # Available Packages # Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos) # sudo yum -y install docker-ce-[VERSION]
amazon-linux 2
yum install -y docker
Docker CE and docker-compose Install on amazon linux2
install-from-a-package
1.install-from-a-package on centos
yum install libtool-ltdl-2.4.2-22.el7_3.x86_64 container-selinux libcgroup libseccomp libltdl.so #然后下载rpm包
install-from-a-package oncentos
2.Install using the repository on debian
apt-get remove docker docker-engine docker.io containerd runc apt install software-properties-common sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable" apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
2.install-from-a-package on debian
Go to https://download.docker.com/linux/debian/dists/, choose your Debian version, browse to pool/stable/, choose either amd64 or armhf, and download the .deb file for the Docker CE version you want to install.
I am stretch so
apt install libltdl7
http://mirrors.aliyun.com/docker-ce/linux/debian/dists/stretch/pool/stable/amd64/
run
sudo systemctl enable docker sudo systemctl start docker
docker代理设置
docker pull proxy
mkdir /etc/systemd/system/docker.service.d/ vim /etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://192.168.10.105:1080" Environment="HTTPS_PROXY=http://192.168.10.105:1080" systemctl daemon-reload systemctl restart docker docker pull alpine Using default tag: latest latest: Pulling from library/alpine 43c4264eed91: Pull complete Digest: sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d Status: Downloaded newer image for alpine:latest docker.io/library/alpine:latest
see also
https://docs.docker.com/install/linux/docker-ce/debian/#upgrade-docker-ce
Installing Docker in Kali Linux 2018.1
参考
注意docker的网络基于NAT,重启宿主机器防火墙后,需要重启docker 推荐centos 7 运行docker 安装: yum -y install docker-io 运行/停止/重启: systemctl start docker systemctl stop docker systemctl restart docker #开机自启动 systemctl enable docker.service
docker常用命令
docker inspect --format='{{.LogPath}}' containername docker logs docker日志 #日志过滤 docker logs xx -f 2>&1| grep --line-buffered xxx docker logs -f --tail 10 a4dac74d48f7 docker help (help 命令) docker ps -a 查看容器运行情况 docker start/stop/restart name(容器名称) (启动/停止/重启) docker search nginx 查找nginx 容器镜像 docker pull nginx 下载镜像 docker images name 查看本地已有镜像 docker rmi 删除images的命令 有f参数 #使用一下命令对镜像重启: $docker restart imageid #在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启: $docker run --restart=always #如果已经启动了则可以使用如下命令: $docker update --restart=always <CONTAINER ID> docker search jenkins docker pull docker.io/jenkins docker run命令即是运行容器。其中涉及到很多参数,可以通过docker run --help命令查看,但一般用的比较多的是 -d 后台运行 -d, --detach Run container in background and print container ID -it 交互模式运行 --name 制定容器的名称 -h 制定容器的主机名 -p 分配对外端口给容器 -P 随机分配对外端口给容器 一般在最后加上镜像名 例如: -p hostPort:containerPort docker run --name=jenkins -it -u root -d -p 8080:8080 -p 50000:50000 -v /data/jenkins:/var/jenkins_home 3f08dc4f3f5d --name=jenkins 命名 -it 交互模式运行 -u root root权限 -d 后台运行 -p 8080:8080 映射端口 -p 50000:50000 映射端口 -v /data/jenkins:/var/jenkins_home 映射目录 3f08dc4f3f5d 本地镜像ID docker images name 命令可查看ID eg #docker images jenkins docker-compose a.yml networks: - d_net container_name: "compose-mysql" 映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。 (可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。 (可选,但强烈建议)映射在容器中的`/var/jenkins_home` 目录到具有名字 jenkins-data 的volume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。 登入容器: docker exec -it jenkins /bin/bash 同步容器时间 在Dockerfile中加入 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && ntpdate cn.pool.ntp.org 或 容器运行后把容主机的/usr/share/zoneinfo/Asia/Shanghai 复制到容器的/etc/localtime #先cp 到 /data/jenkins cp /usr/share/zoneinfo/Asia/Shanghai /data/jenkins --rm \ (可选)线上一般不用 jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁
docker logs
docker logs --tail=10 docker logs --since="2016-07-01" --tail=10 mynginx #查看容器mynginx从2016年7月1日后的最新10条日志。
https://docs.docker.com/engine/reference/commandline/logs/
日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)
Docker logs 查看实时日志(日志最后的N行、某刻后日志
docker run VS docker exec
docker run”通常是在新创建的容器中所使用的命令。 它适用于在没有其他容器运行的情况下,您想要创建一个容器,并且要启动它,然后在其上运行一个进程
docker exec”适用于在现有容器中运行命令的情况。如果您已经拥有了一个正在运行的容器,并希望更改该容器或从中获取某些内容,那么使用“docker exec”命令就非常合适了。例如,如果您使用了 docker-compose,那么您可能会启动多个容器,并且希望能够在创建它们后访问其中的一个或多个容器
“docker run”VS“docker exec这两个命令有区别
docker 环境变量
格式有两种: ENV key value ENV key1=value1 key2=value2 root@debian11:~# cat ins docker run -d \ --restart=unless-stopped \ --env KUBOARD_ADMIN_DERAULT_PASSWORD=evan123456 \ #这行就是我添加的环境变量 --name=kuboard \ -p 80:80/tcp \ -p 10081:10081/tcp \ -e KUBOARD_ENDPOINT="http://192.168.10.175:80" \ -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \ -v /data/kuboard-data:/data \ eipwork/kuboard:v3
查看docker容器的资源使用docker stats
Demonstrate how you would log the resource usage of the containers every 10 seconds. cat 10s.sh watch -n 10 "sudo docker stats nginx1.15 --no-stream "
docker cp 数据交互 docker中宿主机与容器(container)互相拷贝传递文件
Docker容器和主机如何互相拷贝传输文件 将主机./RS-MapReduce目录拷贝到容器30026605dcfe的/home/cloudera目录下。 docker cp RS-MapReduce 30026605dcfe:/home/cloudera docker cp bsd-daemon-tux-logo.png mediawiki:/etc/apt/ 将容器30026605dcfe的/home/cloudera/RS-MapReduce目录拷贝到主机的/tmp目录中。 docker cp 30026605dcfe:/home/cloudera/RS-MapReduce /tmp/
与DockerFile
docker build Dockerfile
➜ hellodocker cat index.js console.log("welcome to docker world") ➜ hellodocker cat Dockerfile FROM node:14-alpine COPY index.js /index.js CMD node /index.js sudo docker build -t hello-docker . ➜ hellodocker sudo docker run hello-docker welcome to docker world ➜ hellodocker
trouble
docker login
login 问题 -sfo2-01:~# docker login --username= registry.cn-hangzhou.aliyuncs.com Password: Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY` apt install gnupg2 pass 2-01:~# docker login --username= registry.cn-hangzhou.aliyuncs.com Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store
容器关不了
问题 docker kill 也关不了 格式 ps aux | grep <<container id>> | awk '{print $1 $2}' sudo kill -9 <<process id from above command>> eg root@--test:~# ps aux | grep 279c53f5b89b | awk '{print $1 $2}' root4986 root11314 root11350 root@-test:~# kill -9 4986 root@lxtx-cailuw-test:~# kill -9 4986 11314 11350 -bash: kill: (4986) - No such process -bash: kill: (11350) - No such process
Docker stop或者Docker kill为何不能停止容器
https://www.cnblogs.com/shoufu/p/12978843.html
Error pulling image (2.8.21) from redis, endpoint: https://registry-1.docker.io/v1/, Get https://registry-1.docker.io/v1/images/1a721decd792ad1d3c4ebc315d34b1f8d4dfb97e6d8013efe6c523e637361bd6/ancestry: read tcp 1a721decd792: Error pulling image (2.8.21) from redis, Get https://registry- 修改Docker配置文件/etc/default/docker如下: DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io" 使用service docker restart重启Docker服务即可。 解决docker x509: certificate has expired or is not yet valid 把系统时间改回来就行了 ntpdate cn.pool.ntp.org #同步一下时间 17 Apr 17:40:45 ntpdate[32206]: step time server 202.112.29.82 offset 5262859.193967 sec date “+%Y-%m-%d” #时间同步成功 2015-04-17
err see also
解决docker x509: certificate has expired or is not yet valid
references
Flocker 做为后端存储代理 docker volume-driver 支持
打包 Docker 与数据,Flocker 实现整体轻松迁移