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
Docker发布程序那些事的更多相关文章
- NetCore 2.0 应用程序在centos 7上通过docker发布
一 安装netcore 2.0 SDK 在centos 上面安装netcore 2.0 与window上面是不太一样的,注意,linux是不支持同时安装两个版本的.netcore SDK的,由于我之 ...
- docker发布.net core程序的坑
docker发布遇到的两个问题 1:Could not resolve CoreCLR path. For more details, enable tracing by setting COREHO ...
- .NET Core使用skiasharp文字头像生成方案(基于docker发布)
一.问题背景 目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理,到了.NET Core下一脸 ...
- Docker 发布 Abp net core web 服务
Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...
- Angular入门到精通系列教程(14)- Angular 编译打包 & Docker发布
目录 1. 概要 2. 编译打包 2.1. 基本打包命令 2.2. 打包部署到二级目录 3. Angular站点的发布 3.1. web服务器发布 3.2. 使用docker发布 4. 总结 环境: ...
- 【WinForm】使用NSIS发布程序
简介 NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序.它提供了安装.卸载.系统设置.文件解压缩等功能 使用 以下是 ...
- Qt for Mac:发布程序(widgets和quick2)
当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行. 比较幸运的是,Qt ...
- WPF发布程序后未授予信任的解决办法
WPF发布程序后未授予信任的解决办法 基于浏览器的WPF应用程序由于需要比较高的操作权限,所以在项目的安全性属性中选择了“这是完全可信的应用程序”选项.可是,在发布部署后,在其他电脑上打开xbap文件 ...
- 如何使用VC++6.0发布程序(即release版本程序)
大家都知道VC编译器默认生成debug版本的程序,但是debug版本程序无法运行在没有安装VC的电脑上, 这就要就我们生成release版本的程序,因为release版本在未安装VC的电脑上也能运行( ...
随机推荐
- java json转换(二)
package com.kps.common.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArra ...
- 【BZOJ5496】[十二省联考2019]字符串问题(后缀树)
[BZOJ5496][十二省联考2019]字符串问题(后缀树) 题面 BZOJ 洛谷 题解 首先显然可以把具有支配关系的串从\(A\)到\(B\)连一条有向边,如果\(B_i\)是\(A_j\)的前缀 ...
- Eclipse 添加 lib (导入 .jar 包)
1.将要添加的 jar 包直接拖到 WEB-INF/lib 目录里. 2.在项目上右键,依次选择[Build Path]--[Configure Build Path...]-- [Libraries ...
- CMDB服务器管理系统【s5day90】:创建资产更新服务器硬盘信息
1.创建硬件资产信息 import json from django.shortcuts import render,HttpResponse from django.views.decorators ...
- 解决Java getResource 路径中含有中文的情况
问题描述 当Java调用getResource方法,但是因为路径中含有中文时,得不到正确的路径 问题分析 编码转换问题 当我们使用ClassLoader的getResource方法获取路径时,获取到的 ...
- 070、如何定制Calico 网络policy(2019-04-15 周一)
参考https://www.cnblogs.com/CloudMan6/p/7552618.html Calico默认的policy是:容器只能与同一个calico网络中的容器通信. Ca ...
- javascript节点移除
var itemdel = document.getElementById("test"); itemdel.removeChild(lis[0]); 兼容性较好 itemdel. ...
- [物理学与PDEs]第1章习题10 自由电磁场在 Lorentz 规范变换下可使标势为零
在自由电磁场的情况, 证明: 在保持 Lorentz 条件下的规范变换下, 可使标势恒为零. 证明: 取 $\psi$ 满足 $\cfrac{\p \psi}{\p t}=\phi$ 且 $\cfra ...
- 使用SO_REVTIMEO套接字选项为recvfrom设置超时
void dg_cli(FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen) { int n; ]; struct timeval ...
- [译]Ocelot - Configuration
原文 这里有一个配置的样例.配置主要有两个部分.一个是ReRoutes数组,另一个是GlobalConfiguration.ReRoute告诉Ocelot怎么处理上游的请求.Global config ...