鉴于中文搜索出来的方式80%都是使用tty进行连接,但是我安装的Docker版本压根就没这文件,再执行命令时就会提示[screen is terminating]
;这个操作还是比较经常出现的,所以记录一下如何正确操作,防止下次又忘记了。
记得停止要修改的容器,我在这些操作都是从可视化界面进行的就不敲命令了[docker stop {容器Id|容器名}
]
输入命令获取要修改的容器ID,首先知道要修改的容器名是,比如:train,在Linux或Mac你可以输入以下命令只显示ID。
docker inspect train | grep Id
如果是Windows则只输入以下命令,然后拉到上面找到Id
的值
docker inspect train
输出的结果第一行的Id即代表是容器ID,记住一下即可。
然后启动终端创建且进入一个容器,如果已经创建过这个容器可以直接进入。
docker run -it --privileged --pid=host justincormack/nsenter1
进入到创建到容器后,进入到对应目录:
cd /var/lib/docker/containers/{容器ID}
例如:
cd /var/lib/docker/containers/9e9c20a43f294b200e28f49ea5e0cf67189c281c0364cd9675cb90a811c0b782/
主要修改两个配置文件,config.v2.json
和hostconfig.json
修改容器映射端口:
编辑config.v2.json文件:
vi config.v2.json
在vi下输入 / 进入到搜索,输入ExposedPorts
回车跳转到位置,按i进入编辑模式修改:
"ExposedPorts":{"80/tcp":{}}
参考如果暴露80的端口这在增加,如果多个接口就往后增加:
"ExposedPorts":{"80/tcp":{}, "3306/tcp":{}}
然后敲下Esc
退出编辑模式,再进入到搜索后输入Ports
(如果没有定位到按下n
可跳转下一个):
"Ports":{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"80"}]}
这位置编辑完成后,按Esc
退出输入:wq
保存并退出。
然后修改hostconfig.json
文件,进入到文件后搜索PortBindings
,编辑:
"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"80"}]}
保存退出,重启一下docker(点击菜单栏的图标有个Restart Docker
选项)即可。
修改容器映射目录:
同样的,如果需要修改映射目录,也是需要修改这两个文件下的配置,不过映射目录需要修改的地方比较多,可以通过vi
的搜索找到原本的目录,进行修改,并且记得点击n
键跳到下一个,直到没有需要修改的地方再保存退出。两个文件都修改完毕后,重启容器就可以了。😊