需求

在使用docker-chrome进行selenium手动化测试的时侯linux定时器,希望顾客端就能通过某种方式,让我们的case挪到测试环境取docker 配置,这时侯有两个方法:

1. 给浏览器使用代理(这里不讲,前面有个文章已经说过了)
2. 修改执行的selenium客户端的hosts配置

介绍下更改docker容器的hosts方法1.容器内容更改

docker 配置_配置docker镜像源_配置docker镜像仓库

dockerexec-itchromebash直接步入容器中,之后vim更改/etc/hosts,可生效使用。须要注意的是dockerrm后dockerrun上去的容器,会没有之前更改的内容,所这些方法不是长久之计;

2.更改dockerfile来更改images的hosts

在设计dockerfile制做镜像的时侯docker 配置,可以通过RUN命令echo'192.168.1.9test>>/etc/hosts'直接更改。在dockerfile前须要userroot,须要你是root用户linux之家,/etc/hosts文件对于普通用户是没有权限的。(这儿须要注意的是通常容器里没有vi/vim的工具,第一步里使用的vim可以在制做image时安装)

3.使用运行时命令dockerrun--add-host=

官网docker文档中有提及dockerrun运行容器的时侯,可以通过参数–add-host来添加域名和IP信息到容器的/etc/hosts文件中

配置docker镜像仓库_docker 配置_配置docker镜像源

docker run --add-host=test.docker.com:192.168.1.9   --name se-chrome  se/chrome:3

假如想要添加多个,添加一个--add-host

docker run 
--add-host=test.docker.com:192.168.1.9   

配置docker镜像源_docker 配置_配置docker镜像仓库

--add-host=test2.docker.com:192.168.1.10 --name se-chrome se/chrome:3

4.可使用编排工具docker-compose添加

官网文档中有介绍在docker-compose.yml文件中,通过配置参数extra_hosts来实现:

docker 配置_配置docker镜像源_配置docker镜像仓库

extra_hosts:
	- "test.docker.com:192.168.1.9"
	- "add-host=test2.docker.com:192.168.1.10"

这儿须要注意格式,不然会报错

5.可以使用swarm集群中的create--host来添加

--host list     Set one or more custom host-to-IP mappings (host:ip)

docker service create --name my-service --host foo:127.0.0.1 nginx:alpine

注意:–host可以是一个,也可以时一个list,多一个的时侯就多一个–host

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复