以下总结一些我个人在搭建测试环境之中使用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服务端的p_w_picpath,但是该客户端不能pulldockerHUB上的镜像了,这点让我非常囧。经过后续的研究发现,客户端链接服务端需要一个login的操作,那么当客户端想pull dockerHUB的资源时,需要断开私有库的链接。所以需要一个loginout的操作,另外,etc/sysconfgi/docker 中注释掉私有库的配置操作,然后重启docker服务即可。当需要链接私有库的时候,再补充上述操作即可。


5.下面补充几个常用的docker 容器操作

1、停用全部运行中的容器:

docker stop $(docker ps -q)1

2、删除全部容器:

docker rm $(docker ps -aq)1

3、一条命令实现停用并删除容器:

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地址都是变化的!!!!!!

目前找到的解决办法:

  1. 重新下载一个centos:lastest镜像重新做(这么做仿佛跟吃了屎一样恶心)

  2. 使用pipework工具

    具体操作是

    部署pipework


  1. 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 show

 

pipework docker0 -i eth1 容器name 设置的固定IP/24

之后该容器除了拥有一个dhcp的ip地址之外,还有一个设置的固定ip

----------------------------------------------------------------

4月1日愚人节更新

8.这里,我加了一个华丽的分割线,为什么,因为老衲遇到了一个大坑,一个坑的我说不出来话的坑,至今,我都不知道怎么解决,如果有位看官知道,请联系我。

目前docker 现在遇到这么一个问题,把运行的容器stop掉,然后重启电源,重新把docker跑起来的时候,容器是无法启动的!报错的内容是错误容器的挂载点。那么这个问题如何解决呢,我最近会抽时间试着解决一下,解决之后,我会更新这篇博文。

另外,关于docker 目录的迁移我也是做到了,具体的话,参考一篇文档就行了,说白了就是一个链接文件,把地址指定到其他挂载目录点就行了,但是重启电源的时候得重新挂载!所以这点遇到了千万不要惊慌,重新挂上就行了。 

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


目前先写这么多,以后遇到坑,以后再填!

转载于:https://blog.51cto.com/9821177/1751470