1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| 1> docker ps查看需要修改映射关系的容器containers id cd /var/lib/docker/containers/容器id 路径下的文件 #注意容器id需要tab补全。如这里的6de4ba874a92,实际路径为:/var/lib/docker/containers/6de4ba874a923cd9b7dd39f1e32efbc852d3ea5b8e039ae54e19389fdf43bf2d/ 例子:root@ShareTekSrv2:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c3ce43368848 redmine:4.1.1 "/docker-entrypoint.…" 3 months ago Up 4 hours 0.0.0.0:9091->3000/tcp TS-redmine 6de4ba874a92 mysql:5.7 "docker-entrypoint.s…" 3 months ago Up 4 hours 0.0.0.0:3306->3306/tcp TS-mysql
2> 进入目录/var/lib/docker/containers/容器id, 修改hostconfig.json 找到“PortBindings”进行修改 例子:找到这段内容, 第一个端口号3306是容器内部端口, HostPort就是主机端口号3306 “PortBindings”:{“3306/tcp”:[{“HostIp”:"",“HostPort”:“3306”}]} 修改mysql的映射主机端口为3307, 只需要在此处修改HostPort的值为3307 “PortBindings”:{“3306/tcp”:[{“HostIp”:"",“HostPort”:“3307”}]} #修改这个配置文件时, 一定要停止docker , 而不是停止mysql容器
3> 查看config.v2.json 找到"ExposedPorts":{“3306/tcp”:{}} 这段内容, 此处是容器的端口, 如果修改hostconfig.json的内容为以下 “PortBindings”:{“3306/tcp”:[{“HostIp”:"",“HostPort”:“3307”}]} 则confing.v2.json处就要修改为 "ExposedPorts":{"3305/tcp":{}} #对于不存在涉密的数据库,端口都改为3306即可
|