zhouer 发表于 2018-5-29 11:50:22

我在部署docker的时候遇到的坑

  以下总结一些我个人在搭建测试环境之中使用docker的坑
  1.docker端口的坑
  docker 容器在创建的时候,可以通过-p 指令来映射端口,使外部的网络能通过该端口访问容器的服务。
  但是如果容器的端口已经设定,且容器已经运行起来的时候,是无法映射或者更改新的端口的。
  所以这个坑要有所注意,不然又得从新commit镜像重新run,浪费时间。
  

  2.docker容器IP地址的坑
  docker的镜像一般都是原版centos等慢慢扩展的。网络这块是dhcp模式的,所以每次在重启容器的时候,docker容器的ip地址都是变化的,可能会影响到整个docker容器集群的运行,所以我们要配置docker容器的静态ip,虽然我并不知道如何重启容器的network服务,但是可以保证IP地址的固定
  

  3.docker --link的坑
  容器之间要相互通信,可以使用--link选项,那么我们一定要记住或者管理好 --link的创建顺序,因为如果设置了--link的话,该容器在启动之前会自动的去寻找需要通信的容器,如果通信的容器没有启动,该容器是无法启动的,所以我们要按照一定的顺序,有依赖性的启动容器。千万不要把有依赖的容器给删了,不然就是大坑。
  

  4.docker registry私有库和共有库之间转换的坑

  我在搭建私有库后,客户端能pull服务端的image,但是该客户端不能pulldockerHUB上的镜像了,这点让我非常囧。经过后续的研究发现,客户端链接服务端需要一个login的操作,那么当客户端想pull dockerHUB的资源时,需要断开私有库的链接。所以需要一个loginout的操作,另外,etc/sysconfgi/docker 中注释掉私有库的配置操作,然后重启docker服务即可。当需要链接私有库的时候,再补充上述操作即可。
  

  5.下面补充几个常用的docker 容器操作
1、停用全部运行中的容器:
docker stop $(docker ps -q)12、删除全部容器:
docker rm $(docker ps -aq)13、一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)  3.16补充
  6.容器时间的坑
  创建容器之后,发现date命令无法更改时间了,真特么日了狗,百度了一下,可以这样修改时间
  进入容器:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

  7.容器内部设置固定IP的坑
  这个是重中之中,在centos7.2之前的版本貌似都有在容器中无法重启网络服务这个bug
  造成每次重启容器,IP地址都是变化的!!!!!!
  目前找到的解决办法:

[*]  重新下载一个centos:lastest镜像重新做(这么做仿佛跟吃了屎一样恶心)
[*]  使用pipework工具
  具体操作是
  部署pipework
  


[*]wget https://github.com/jpetazzo/pipework/archive/master.zip
# unzip pipework-master.zip
# cp pipework-master/pipework/usr/local/bin/
# chmod +x /usr/local/bin/pipework
  

brctl showpipework docker0 -i eth1 容器name 设置的固定IP/24  之后该容器除了拥有一个dhcp的ip地址之外,还有一个设置的固定ip
  ----------------------------------------------------------------
  4月1日愚人节更新
  8.这里,我加了一个华丽的分割线,为什么,因为老衲遇到了一个大坑,一个坑的我说不出来话的坑,至今,我都不知道怎么解决,如果有位看官知道,请联系我。
  目前docker 现在遇到这么一个问题,把运行的容器stop掉,然后重启电源,重新把docker跑起来的时候,容器是无法启动的!报错的内容是错误容器的挂载点。那么这个问题如何解决呢,我最近会抽时间试着解决一下,解决之后,我会更新这篇博文。
  另外,关于docker 目录的迁移我也是做到了,具体的话,参考一篇文档就行了,说白了就是一个链接文件,把地址指定到其他挂载目录点就行了,但是重启电源的时候得重新挂载!所以这点遇到了千万不要惊慌,重新挂上就行了。

  以上就是最近2天遇到的坑,后面我会贴上博文的地址。
  

  目前先写这么多,以后遇到坑,以后再填!
页: [1]
查看完整版本: 我在部署docker的时候遇到的坑