新版本Docker映射
由于新版本使用自己的虚拟机技术映射很简单,docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。
亦可使用Dockerfile文件中的EXPOSE指令来配置。
-p指定要映射的端口,一个指定端口上只可以绑定一个容器
ip:hostport:containerport#指定ip、指定宿主机port、指定容器port
ip::containerport#指定ip、未指定宿主机port(随机)、指定容器port
hostport:containerport#未指定ip、指定宿主机port、指定容器port
例如:
docker run -itd --name nginx -p 80 nginx
以上指令会将容器的80端口随机映射到宿主机的一个端口上。
将容器指定端口指定映射到宿主机的一个端口上
例如:
docker run -itd --name nginx -p 8080:80 nginx
以上指令会将容器的80端口映射到宿主机的8080端口上。
将容器端口映射到宿主机ip和端口上
例如:
docker run -itd --name nginx -p 192.168.1.55:8080:80 nginx
以上指令会将容器的80端口,映射到宿主机192.168.1.55的IP和8080端口上。
旧版本Docker映射
由于旧版本使用的是virtualBox做虚拟机的所以端口映射方式不一样
前面的端口映射是一样的主要是后面代码不一样
例如:
docker run -itd --name nginx -p 8080:80 nginx
以上指令会将容器的80端口映射到宿主机的8080端口上。
打开虚拟机 Oracle VM VirtualBox 找到default->右键设置
选择网络->高级->端口转发
配置端口转发规则
如:设置主机ip192.168.1.55 主机端口 8888 (通过IP:端口就可以访问虚机),子系统端口(就是端口映射配置的端口-p 8080:80 )这里指8080