Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。
一、外部访问容器
外部访问容器需要设置端口映射,通过-P或-p参数设置端口映射。
- 映射所有地址的一个随机端口到内部容器端口:-P
- 映射所有地址的一个指定端口到内部容器端口:-p hostPort:containerPort
- 映射指定地址的一个指定端口到内部容器端口:-p ip:hostPort:containerPort
- 映射指定地址的随机端口到内部容器端口:-p ip::containerPort
- 查看映射端口配置:docker port
- 查看容器的所有映射:docker container ls;docker container inspect 下NetworkSetting中Ports属性
- 查看访问记录:docker logs
举例:
docker run -P(随机映射到32679端口)
docker port :
docker container inspect :
docker logs:
docker run -p hostport:containerport
docker run -p ip::containerport
二、容器互联
通常将容器加入自定义的 Docker 网络来连接多个容器。(当然也可以使用--link参数,请自行了解)
2.1建立网络
docker network create -d bridge <networkName>
-d指定网络类型,常用bridge,另一种swarm暂时不用了解。
2.2连接网络
建立两个容器,设置在同一个网络:
安装一下ping工具,然后ping一下:
然后就ping通了,说明网络建立成功。
(多容器互联推荐使用docker-compose工具。)