zoukankan      html  css  js  c++  java
  • Docker发布程序那些事

    最近使用docker比较频繁,所以也难免碰到一些坑,在这里记录一下,给自己写个笔记

    1.docker 1.13.0版本不支持docker stack deploy -c 多个 -c的yml文件合并

      如果发现多个-c不起作用,可以看一下docker的版本是否太久,1.18.0之后是可以的

    2.docker stack deploy 后 stack rm stackName后再次启动可能会提示network已经存在,

      有时docker 不会删除原有network

    3.docker stack deploy 启动时有时会提示network不存在,启动失败,

       需要再次执行docker stack deploy命令

    4.提示invaild mount config error等,多半是因为在docker-compose.yml文件中包含volumes ,且里面存在从未知路径挂载的命令

        可以在yml文件的底部用volume挂载,而不是在service中使用未知路径,

    5. fail to gateway ..ip is in use,一般是network中存在原有ip地址的network未删掉

       我们可以使用 docker network prune 删除未执行的network,或者直接删除对应的network

    6. docker-compose up时 nginx提示 Error starting userland proxy: listen tcp 0.0.0.0:8001: bind: address already in use,并且network没有8001,

      因为nginx出现异常,需要 删掉nginx 然后重新启动

    Instead of

    sudo systemctl restart nginx
    

    I had to use:

    sudo pkill -f nginx
    sudo systemctl start nginx

    ---------------- 命令注释----------------------

    重要! stack rm 后 需要执行stack docker network prune 删除未使用的network
    多次使用 stack 命令 (stack rm + stack stack deploy ) 重启服务时 , stack rm 后 network 可能会未完全删除,下次使用 stack deploy -c xxx.yml 启动时会发现部分服务报错,提示"failed to allocate gateway (10.0.0.1): Address already in use" 这时需要执行stack docker network prune 删除未使用的network.


    docker swarm 命令

    (Manager节点执行)初始化集群docker swarm init

    (Manager节点执行) 查看加入worker节点时,需要在worker节点执行的命令docker swarm join-token worker


    docker stack 命令


    启用集群式服务.
    (在docker-compose.yml目录下执行) sudo docker stack deploy -c docker-compose.yml -c docker-compose.override.yml BI
    ** 使用docker stack deploy -c docker-compose.yml时yml文件中的build指令无效,需要先执行 docker-compose build 命令! **

    移除BI 服务集群 docker stack rm BI
    当删除集群时,yml中build的镜像需要手动删除

    docker service 服务命令


    查看运行中的服务列表 docker service ls

    查看某个服务(BI_app-download)的运行状态 docker service ps BI_app-download

    查看某个服务(BI_app-download)的日志记录 docker service logs BI_app-download

    创建所需镜像
    (在docker-compose.yml目录下执行) docker-compose build


    docker-compose.yml中含有deploy属性(stack deploy 启动需要)时,docker会提示警告,但不影响镜像生成.


    生成的镜像名称为docker_foldername格式
    如: build app-download 文件夹下的 Dockerfile文件时,生成的镜像名称为 "docker_app-download"

    删除镜像 docker rmi imageid
    如果修改重新生成镜像,需要删除集群-->删除镜像-->修改更新项-->docker-compose build-->docker stack deploy

    docker load image 时提示空间不够

    systemctl/systemd/docker.service 下修改  -grph =/var挂载新的目录,  然后分别重启服务 system restart  daemon-reload  ,restart docker service

    docker file 使用dockerfile 配置容器时区

    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  • 相关阅读:
    [LeetCode in Python] 98 (M) validate binary search tree 验证二叉搜索树
    [LeetCode in Python] 79 (M) word search 单词搜索
    mybatis3源码阅读之SqlSessionFactoryBuilder
    java简单的双色球摇号程序
    低延时直播应用 流媒体
    glPixelStorei 详解 包括像素传输
    depth/stencil buffer的作用 ----------理解模板缓存 opengl
    实用网站汇编
    利用CodeBlocks结合freeglut快速搭建OpenGL开发环境
    opengl 4.5 中文api 链接
  • 原文地址:https://www.cnblogs.com/mailaidedt/p/9981950.html
Copyright © 2011-2022 走看看