分类 docker 下的文章

docker日志清理

docker日志如果在没有做滚动的情况下,会越来越多,日志多了,看日志没那么方便,所以有清理的必要,下面是清理的的脚本:

#!/bin/sh
echo "==================== start clean docker containers logs =========================="
 
logs=$(find /var/lib/docker/containers/ -name *-json.log)
 
for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done
 
 
echo "==================== end clean docker containers logs   =========================="

参考:
https://blog.csdn.net/xunzhaoyao/article/details/72959917

docker使用中常见错误

1:无法链接安装在docker里面的mongodb
在docker里面正常链接,在宿主机里面无法链接,端口映射没有问题,最后问题出现在mongodb的配置文件,需要bindIp:0.0.0.0
2:docker build 无法访问网络
在build的时候run命令无法下载资源
解决方位:
vi /etc/docker/daemon.json
增加 "dns": ["119.29.29.29"]
然后重启docker服务
2:el6无法运行elasticsearch6版本
CentoOS 6 does not (as far as I can research) support SecComp, but ES tries to use it anyway, and fails to start 。
设置配置文件:bootstrap.system_call_filter: false
3:系统重启后docker无法启动
报错为:docker0: iptables: No chain/target/match by that name
解决方法重启docker服务service docker restart
4:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf里面的vm.max_map_count

win10安装docker报错

错误信息为:You are not allowed to use Docker . You must be in the "docker-users" group.
解决步骤:
打开计算机管理,在运行里面 compmgmt.msc,然后回车
a1.png

在docker-users添加你的现在登录的用户
a2.png

centos6.6安装docker和docker-compose

首先查看自己操作系统的信息

[ops@awsciika ~]# uname -a
Linux aws-ciika 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64                 GNU/Linux
[ops@awsciika ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)

可以看到操作系统是centos6.6的,那会是2.6.32,而docker官方要求是:
Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at minimum, which CentOS 7 runs.
centos6.6,6.8只能安装到docker最新版为docker1.7.1,我查看了他们官方的release的rpm包,centos/6也只有这个版本的rpm包,docker ce只能安装在centos7的版本上。
安装docker

[ops@awsciika ~]$ yum list |grep docker
docker-io.x86_64                            1.7.1-2.el6                  @epel  
docker.x86_64                               1.5-5.el6                    epel   
docker-engine.x86_64                        1.7.1-1.el6                  docker-main-repo
docker-io-devel.x86_64                      1.7.1-2.el6                  epel   
docker-io-fish-completion.x86_64            1.7.1-2.el6                  epel   
docker-io-logrotate.x86_64                  1.7.1-2.el6                  epel   
docker-io-vim.x86_64                        1.7.1-2.el6                  epel   
docker-io-zsh-completion.x86_64             1.7.1-2.el6                  epel   

如果没有epel源,就先安装下epel源
现在让我们通过安装 docker-io 软件包来安装 Docker:
yum -y install docker-io
启动并设置为启动项
service docker start && chkconfig docker on

安装docker compose
由于docker-compose严格的对应docker引擎的版本,docker1.7.1只能安装docker-compose 1.5.2的版本,否则会报错:
ERROR: The Docker Engine version is less than the minimum required by Compose. Your current project requires a Docker Engine of version 1.10.0 or greater.
具体的版本可参看:
https://github.com/docker/compose/releases
比喻我安装docker-compose1.5.2:

curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

注意:如果/usr/local/bin不在环境变量里面,就把docker-compose安装到/usr/bin下面
docker-compose.yml版本问题:https://docs.docker.com/compose/compose-file/compose-versioning/#version-1
docker-compose 1.5.2 只支持 V1 版本的 docker-compose.yml ,把现在 V2 版本的 docker-compose.yml 改成 V1 版本的格式。
V1 版本的 docker-compose.yml 文件格式主要区别就是:

  • 没有开头的 version 声明
  • 没有 services 声明
  • 不支持 depends_on

具体请看官方的,介绍的比较详细,结果这样修改后可以启动成功
v2版本的yml在1.5.2里面会报错,错误如下:
ERROR: In file './docker-compose.yml' service 'version' doesn't have any configuration options. All top level keys in your docker-compose.yml must map to a dictionary of configuration options.