【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 ...
随机推荐
- 32位vs2010的项目如何在64位系统上运行
64位注册 1. 关闭Visual Studio.2. 在Visual Studio Tools目录,以管理员身份运行Visual Studio Command Prompt (2010),[注:这个 ...
- URL图片预览(createObjectURL)
1.说明 1)createObjectURL 作用:创建url(creates a URL for the specified object); 语法:var url = URL.createObj ...
- HDOJ(HDU) 2093 考试排名(Arrays.sort排序、类的应用)
Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错 ...
- 酷派D530刷机指引之民间ROM
为什么要刷民间ROM? 下图左边是官方ROM,右边是民间ROM,单单看"程序内存"这一项,这个问题的答案应该无需多言: 选择民间ROM就跟找对象一样,没有最好的,只有最适合自己的, ...
- CSS padding margin border属性详解【转载】
本文转载自:http://www.cnblogs.com/linjiqin/p/3556497.html ,感谢相关博主. 图解CSS padding.margin.border属性 W3C组织建议把 ...
- mvc系统过滤器
一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...
- webservice(CXF)基于3.1.1版本实例
引言 有没有一种办法可以实现跨应用程序进行通信和跨平台进行通信呢? 换句话说,就是有什么办法可以实现我的应用程序 A 可以和应用程序 B 进行通信呢? 或者说是,我用 Java 写的应用程序和用 . ...
- MySQL高可用基础之keepalived+双主复制【转】
环境:MySQL-VIP:192.168.1.3MySQL-master1:192.168.1.1MySQL-master2:192.168.1.2 OS版本:CentOS release 6.4 ( ...
- 二叉排序树BST代码(JAVA)
publicclassTest{ publicstaticvoid main(String[] args){ int[] r =newint[]{5,1,3,4,6,7 ...
- MSSQL 简单练习回顾
这段时间,报了浦软培训的.NET,现在整理回顾下,算是个小小总结吧 为了便于操作,我没有在多个数据库间切换数据库实例,以一个总的数据库实例 test_demo为源进行的相关操作,代码的注释根据我的理解 ...