赞
踩
客户端要访问宿主机内部运行的容器时,可以在宿主机打开一个端口,当客户单访问这个端口时,可以将访问转发到内部的容器。
-p
参数:
通过 -p
参数设置,可以在宿主机上选择一个端口映射到容器的端口。
# 清理容器
docker rm -f $(docker ps -aq)
# 端口映射
# -p 宿主机端口:容器端口
docker run -d \
--name cat1 \
-p 80:8080 \
tomcat
浏览器访问宿主机映射的端口 80
http://192.168.64.150
看到 tomcat
返回的 404
页,说明已经正常访问到 tomcat
容器
-P
参数
根据镜像中设置的默认端口,来做自动映射。
EXPOSE 8080
docker run -d --name cat2 \
-P \
tomcat
# 查看使用的端口
docker ps
# -----------
# 0.0.0.0:49153->8080/tcp, :::49153->8080/tcp
浏览器访问 http://192.168.64.150:49153
镜像虽然设置的默认端口是 8080,但可以让tomcat根据配置文件的配置在80端口上启动。
docker run -d --name cat3 \
-v ~/server.xml:/usr/local/tomcat/conf/server.xml \
-P \
tomcat
docker ps
浏览器访问会失败
--net host
让容器直接使用服务器的物理网络和端口,不需要再做端口映射
docker run -d --name cat4 \
--net host \
tomcat
浏览器访问 http://192.168.64.150:8080
容器键互联可以使用 Docker 的虚拟网络来连接。
在 Docker 中可以创建任意多个虚拟网络,容器之间可以通过虚拟网络互联互通。创建虚拟网络时宿主机也会连接到虚拟网络。
# 新建虚拟网络 my-net docker network create my-net # 查看虚拟网络 docker network ls # 查看网络描述信息 docker inspect my-net # 查看宿主机新建的虚拟网卡 ifconfig # 清理容器 docker rm -f $(docker ps -aq) # 新建两个容器 cat1 和 cat2 # 连接到虚拟网络 my-net docker run -d --name cat1 \ --net my-net \ tomcat docker run -d --name cat2 \ --net my-net \ tomcat # 查看两个容器的虚拟网络ip docker inspect cat1 docker inspect cat2 # 测试网络能否互联互通 # 从宿主机ping两个容器 ping 172.18.0.2 ping 172.18.0.3 # 进入cat1,ping宿主机和cat2 docker exec -it cat1 ping 172.18.0.1 docker exec -it cat1 ping 172.18.0.3 # 从容器访问另一个容器,可以使用容器名称访问,容器内部实现了解析环境 docker exec -it cat1 ping cat2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。