容器没有启动?如果你的容器还没有构建,当你想添加端口映射时,只需要在创建容器时添加-p参数即可,如果要添加多个端口映射,则添加几个-p参数即可。类似于下面的例子:dockerrun--nameapi_dfo_hyperf_ws\-v/Users/pudongping/glory/codes/dfo/api_dfo_hyperf:/api_dfo_hyperf\-p9502:9502\-p9503:9503\-p9504:9504\-p9505:9505-it\--entrypoint/bin/sh\alex/alex_api_dfo:v1.0容器启动了吗?但是当你想修改或添加端口时,请先停止正在运行的容器。以下内容均以容器id为cbe26510c276进行操作,请务必将容器id替换为您需要修改的容器id。dockerstop{容器的名称或id}例如:dockerstopcbe26510c276查看容器完整的hash_of_the_container值:dockerinspect{容器的名称或id}|grepId#例如:dockerinspectcbe26510c276|grepId#会得到如下结果:#"Id":"cbe26510c276fa9a4487a8c2af8cbb49410f2a5305149d2b26eb8ce37c777d00"打开hostconfig.json配置文件:vim/var/lib/docker/containers/{hash_of_the_lib/docker/container/{hash_of_the_lib.json/hostconfig/hostconfig}/hostconfig/containers/cbe26510c276fa9a4487a8c2af8cbb49410f2a5305149d2b26eb8ce37c777d00/hostconfig.json如果你不想先查看完整的容器hash_of_the_container值,也可以直接切换到当前容器相关目录cd/var/lib/docker/containers/{hash_the_of}*,editerthen_ofhostconfig.json配置文件。cd/var/lib/docker/containers/{hash_of_the_container}*例如:cd/var/lib/docker/containers/cbe26510c276*然后编辑hostconfig.json配置文件:vimhostconfig.json修改hostconfig.json中的配置文件hostconfig在.json配置文件中,找到配置项“PortBindings”:{},并修改。我这里添加了两个端口映射,将宿主机的8502和8505端口分别映射到容器的8502和8505端口。HostPort对应的端口代表主机的端口。建议容器使用哪个端口,宿主机会映射端口,方便日后管理。当然具体情况具体分析。{"PortBindings":{"8502/tcp":[{"HostIp":"","HostPort":"8502"}],"8505/tcp":[{"HostIp":"","HostPort":"8505"}]}}如果config.v2.json配置文件或config.json配置文件中也记录了端口,也需要修改。如果不是,则无需修改。只需要修改“ExposedPorts”:{}相对。{"Args":[],"Config":{"ExposedPorts":{"8502/tcp":{},"8505/tcp":{}},"Entrypoint":["/bin/sh"]}}最后重启docker,然后查看容器相关的配置信息是否被修改:#restartdockerservicedockerrestart#或者systemctlrestartdocker查看容器相关的配置信息:dockerinspect{nameoridofthecontainer}#例如:dockerinspectcbe26510c276配置符合你的请求后,再次启动容器:dockerstart{nameoridofthecontainer}#例如:dockerstartcbe26510c276
