前言

前面写了关于docker镜像构建的知识,那如何让容器的服务暴露的外部网络呢?

访问处理

启动服务

-p,将容器的端口发布到主机
-P, 将所有暴露的端口发布到随机端口
-d,在后台运行容器并打印容器 ID

docker run -d -P --name test1  hello:v1 
[root@sanxingtongxue conf]# docker run -d -P --name test1 hello:v1 
fa5b2eaf74df94f93b63cca93548a0bb0b0e8a2e202abb67a42de3683a280970

或指定端口启动

docker run  -d -p 5000:8000 --name test2 hello:v1

查看容器端口

[root@sanxingtongxue conf]# docker ps 
CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS          PORTS                                         NAMES
fa5b2eaf74df   hello:v1   "/bin/sh -c 'flask r…"   2 minutes ago    Up 2 minutes    0.0.0.0:49154->8000/tcp, :::49154->8000/tcp   test1

访问服务

主机内部访问:

[root@sanxingtongxue conf]# curl localhost:49154
Hello World![root@sanxingtongxue conf]# 

外部浏览器网络访问主机IP:49154
在这里插入图片描述

常见问题

若出现,外网访问不通的情况。可能有以下原因:

防火墙端口未开启

参考文章 Linux 防火墙和端口开放管理
关闭防火墙或开启相关端口

若使用云服务打开防火墙安全组

添加规则,开放相应端口解决。
在这里插入图片描述
在这里插入图片描述
生命潦草,我在弯腰。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐