以下总结一些我个人在搭建测试环境之中使用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)1
2、删除全部容器:
docker rm $(docker ps -aq)1
3、一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
目前先写这么多,以后遇到坑,以后再填!