页面加载中,请稍候
来源:开源Linux发布时间:2022-11-15663浏览
询问 AI
如果你的容器还没有构建时,想添加端口映射时,你只需要在创建容器的时候添加-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_container}/hostconfig.json
比如:
vim/var/lib/docker/containers/cbe26510c276fa9a4487a8c2af8cbb49410f2a5305149d2b26eb8ce37c777d00/hostconfig.json
如果你不想先查看完整的容器hash_of_the_container数值,你也可以直接先切换到当前容器相关目录中cd /var/lib/docker/containers/{hash_of_the_container}*, 然后再去编辑hostconfig.json配置文件。
cd/var/lib/docker/containers/{hash_of_the_container}*
比如
cd/var/lib/docker/containers/cbe26510c276*
然后再去编辑hostconfig.json配置文件:
vimhostconfig.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,然后查看容器相关配置信息是否已经修改完毕
#重启docker
servicedockerrestart
#或者
systemctlrestartdocker
查看容器相关配置信息:
dockerinspect{容器的名称或者id}
#比如:
dockerinspectcbe26510c276
配置符合你的要求后,再次启动容器:
dockerstart{容器的名称或者id}
#比如:
dockerstartcbe26510c276How to login the VM of Docker Desktop for Mac
因为在 Docker for MacOS 中,容器的宿主机并不是 MacOS 本身,而是在 MacOS 中运行的一个 VM 虚拟机
。虚拟机的路径可以通过查看 Docker Desktop 的配置界面Disk image location配置获得。
’那么我们如何进入这个虚拟机呢?
最简单的方式是采用 justincormack/nsenter1 进入,这个镜像只有 101KB,已经非常小了。
dockerrun-it--rm--privileged--pid=hostjustincormack/nsenter1
然后再进入/var/lib/docker/containers目录修改config.v2.json配置文件和hostconfig.json配置文件即可。整体来说,在 MacOS 上除了进入/var/lib/docker/containers目录时,进入方式有所不同以外,修改配置文件方式和上文一样。需要注意的是,修改的时候请使用vi编辑器,因为这个镜像没有安装vim编辑器的。
比如:
vi/var/lib/docker/containers/a7377587b9f08cfe87af9a8ffa4da0f90bf07fb0a1cd6833a5ffcd9c37b842d0/config.v2.json
vi/var/lib/docker/containers/a7377587b9f08cfe87af9a8ffa4da0f90bf07fb0a1cd6833a5ffcd9c37b842d0/hostconfig.json
新闻来源:开源Linux,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!

2026-07-12

2026-07-07

2026-07-15