docker 所有web都要加端口号吗?
发布网友
发布时间:2022-02-26 21:25
我来回答
共1个回答
热心网友
时间:2022-02-26 22:54
一开始docker安装好并且启动container后,container内的服务端口(例如nginx启动后监听的80端口)是不对外暴露的,在宿主windows下用浏览器访问docker虚拟机ip是访问不到container内的80端口的
必须做端口映射操作,只要在container启动时,docker run命令带上端口映射参数就可以了:
docker run -it -p 22222:33333 fe65a2781dae /bin/bash
解释:
-it参数在启动container为tty形式时必带,否则无法做命令行交互
-p 22222:33333 关键参数,指定docker虚拟机的22222端口,映射为container的33333端口,即对192.168.59.103:22222的访问,统统访问到container的33333端口。如果要映射80端口,设置-p 80:80就好
fe65a2781dae 指定docker要运行的imageid,也可以是REPOSITORY:TAG形式
/bin/bash docker启动container后要运行的命令,一般启动命令行交互就用这个就好了
所以要把nginx调通,要做以下步骤:
1、docker run -it -p 80:80 fe65a2781dae /bin/bash
2、container内运行nginx
3、宿主windows浏览器访问192.168.59.103
4、Welcome to nginx!