【docker】docker初试与填坑
docker是最近很流行的部署方式,最近尝试之前的项目都转移到docker上运行,下面是碰到的一些坑和解决方案。
- 网络问题
因为国内的原因,docker pull 镜像的时候经常碰到连不上或者速度极慢的情况。
这部分可以使用 国内流行的 daocloud 的方案解决 ,使用dao pull代替docker pull ,如果是自行构建,可能需要使用代理或者直接在国外主机build,再打包传回来。 - 时间同步
hub.docker.com上的镜像,包括自己构建的,基本上都是以utc时区作为默认时区,这样于host主机时间往往差8个小时。
最好的解决方案是 挂载volumn /etc/localtime 到 docker环境中,如果是docker命令,docker -v /etc/localtime:/etc/locaitime:ro ...
如果是docker-compose.yml 添加volumesvolumns:
- /etc/localtime:/etc/localtime:ro - entrypoint 与 run
构建docker镜像时,最后一句往往要写上docker的"入口",使用entrypoint or run?
这两个最基本的区别就是 entrypoint 包含了命令本身,是应用化的docker镜像,如果 指定 docker-a 的entrypoint位 ls
则 docker run entrypoint -l 的结果就是ls -l 的结果,而如果指定 run 为ls,则 docker run entrypoint ls -l 则为ls -l的结果
所以单次执行不需要后台运行的项目,基本上建议指定为 entrypoint,否则建议run。
可以在 docker/docker-compose run 后面使用 --entrypoint覆盖dockerfile里的设置,不过如果想执行bash可能要使用 bash -c 代替。 - 空间占用
如果pull了大量的image,可能会导致docker镜像占用了大量的磁盘空间,所以很多人往往希望找小而美的images,但是这往往没有必要:
docker会复用相同的层(layer) ,所以pull或者build镜像的时候,最好找基于同一个base的镜像,特别是构建的时候,能复用的尽量复用。 - docker 卡死
初期试用docker时,如果没有预估好资源使用量,可能会导致docker卡死,可能会导致系统其他服务响应都会变慢。
建议在多核机器上(>4),对docker使用CPU限制,建议使用cpuset 限制n-1个核心为docker使用,剩下一个响应其他操作,或者使用cpu-shares限制使用量(不超过90%) - 端口与IP
docker默认使用nat作为网络使用方式,使用expose和publish bind暴露内部服务端口。
如果无需对外提供服务,尽量减少主机端口绑定,使用docker-compose时,对内服务无需是用ports指定端口,除非需要在另外一台机器上使用。
如果需要绑定静态ip或直接使用外网ip,可以使用iptables,或者 ip netns等方法,这里我也没做太多实践,下次补充。 - 未完待补充..
文章来源:http://blog.xujif.com/archives/dockers.html
【docker】docker初试与填坑的更多相关文章
- Docker基本概念填坑
Docker的基本概念填坑 Docker的基本概念填坑 1. Docker的基本组成 Docker Client客户端 Docker Daemon守护进程 Docker Image镜像 Docker ...
- 老司机实战Windows Server Docker:1 初体验之各种填坑
前言 Windows Server 2016正式版发布已经有近半年时间了,除了看到携程的同学分享了一些Windows Server Docker的实践经验,网上比较深入的资料,不管是中文或英文的,都还 ...
- docker及服务器遇到的坑
目录 DNS不可用 修改docker查找源 容器保持固定ip 查看docker连接 容器间通信 容器拷贝数据 php连接docker mysql 8.0出错authentication method ...
- 第一次使用docker for windows 遇到的坑
原文:第一次使用docker for windows 遇到的坑 1. 目前win10安装docker, 不需要安装其他工具,可直接到官网下载 2. 此版本的docker可同时运行Windows con ...
- Docker 从入门到掉坑
Docker 介绍 简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器.但是docker本身和虚拟机还是有较为明显的出入的.我大致归纳了一下,可以总结为以下几点: docker自身也有 ...
- Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...
- Docker从入门到掉坑(三):容器太多,操作好麻烦
前边的两篇文章里面,我们讲解了基于docker来部署基础的SpringBoot容器,如果阅读本文之前没有相关基础的话,可以回看之前的教程. Docker 从入门到掉坑 Docker从入门到掉坑(二): ...
- Docker从入门到掉坑(四):上手k8s避坑指南
在之前的几篇文章中,主要还是讲解了关于简单的docker容器该如何进行管理和操作,在接下来的这篇文章开始,我们将开始进入对于k8s模块的学习 不熟悉的可以先回顾之前的章节,Docker教程系列文章将归 ...
- 搭建docker+k8s踩过的坑
问题一: # yum install -y etcd kubernetes Error: docker-ce-cli conflicts with :docker--.gitb2f74b2.el7.c ...
随机推荐
- Path Sum II——LeetCode
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- 辗转相除法_欧几里得算法_java的实现(求最大公约数)
辗转相除法,又被称为欧几里德(Euclidean)算法, 是求最大公约数的算法. 当然也可以求最小公倍数. 算法描述 两个数a,b的最大公约数记为GCD(a,b).a,b的最大公约数是两个数的公共素因 ...
- Jenkins的错误“error fetching remote repo origin”的问题解决
错误如上,解决方法收集,可以尝试以下方法: http://stackoverflow.com/questions/38391601/jenkins-error-error-fetching-remot ...
- Oracle 数据库基本操作——实用手册、表操作、事务操作、序列
目录: 0. 参考链接与参考手册1. oracle 实用(常用操作)指令2. 数据库基本操作语法 a) 表操作 1)创建表 2)更新表 3)删除表 4)查询 b) 事务操作 c) 序列操作 1)创建序 ...
- XML (DOM解析) 看看就行
000000000000000000000000000000000000000 ------------------------------------------------------------ ...
- Tomcat的错误 之 java.lang.IllegalArgumentException: Document base * does not exist
Tomcat的异常 之 java.lang.IllegalArgumentException: Document base 有些刚开始使用的Tomcat的朋友会出现的问题,明明已经将某个web应用从t ...
- Android-语言设置流程分析
Android手机语言切换行为,是通过设置-语言和输入法-语言来改变手机的语言,其实这个功能很少被用户使用. 以Android5.1工程源码为基础,从设置app入手来分析和学习语言切换的过程: ...
- App发布AppStore【苹果开发者中心需要做的事】
请准许我的这句抱怨,也说明发布app到AppStore理清这些东西的重要性:起初打包出现各种 ApplicationVerificationFailed,不是这里没有搞对就是那个证书没有搞对,整个人签 ...
- [转] gdb中忽略信号处理
信号(Signals) 信号是一种软中断,是一种处理异步事件的方法.一般来说,操作系统都支持许多信号.尤其是UNIX,比较重要应用程序一般都会处理信号.UNIX定义了许 多信号,比如SIGINT表示中 ...
- [转] Ubuntu 12.04下LAMP安装配置 (Linux+Apache+Mysql+PHP)
我是一个Linux新手,想要安装一台Ubuntu 12.04版的Linux服务器,用这台服务器上的LAMP套件来运行我自己的个人网站.LAMP套件就是 “Linux+Apache+Mysql+PHP这 ...