Docker部署WEB 应用时,本地可以成功打开测试页,在公网上(阿里云服务器)却竖伍不能打开。
站在用户的角度思考问题,与客户深入沟通,找到宝兴网站设计与宝兴网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖宝兴地区。
1、环境:阿里云服务器帆升
2、CentOS7系统
3、Docker成功部署
这里前提docker 已经成功部署啦,现有有一个简单的测试案例,在docker上部署一个应用从而访问web。
接下来让我们尝试使用 docker 构建一个 web 应用程序。
我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
通过 -p 参数来设置一样的端口态纤老:
docker ps 查看正在运行的容器
容器内部的 5000 端口映射到我们本地主机的 5000 端口上。
这时我们可以通过浏览器访问WEB应用
访问失败
指定外网端口为5000,
1. 本地测试能否打开测试页
本地没有问题。
2. 浏览器中访问
在任意一台电脑上输入公网IP+端口号 (此端口号为运行WEB应用时指定的端口号5000) 如我的阿里云公网IP为123.11.11.11 此时在任意一台有网络的浏览器地址栏输入公网IP: 应该会出现测试页
但现在出现如下图所示:
显示打不开
查啦大量资料,以前曾经也解决过,一定弄明白自已购买的地区后,再去设置安全组的配置规则。
***1. 登录阿里云管理控制台****
2.找到云服务器ECS-概览
3. 点击云服务器ECS,这个是我购买的类型,其他类型的就不清楚啦。
4. 点击本安全组后,再次点击配置规则:
5. 手动添加端口5000
6. 最后保存,再从浏览器地址栏输入公网IP加端口号3344成功显示测试页如图:
环境:ECS服务器,务必使用CentOS 7 以上版本,64位系统推荐是CentOS 7.8
安装步骤:
一:安装docker所需的环境
1.安装早液唤埋嫌依赖:yum install -y yum-utils device-mapper-persistent-data lvm2
2.配置yum源 使用国内的:yum-config-manager --add-repo
3.查看docker版本:yum list docker-ce --showduplicates | sort -r
二:安装docker
注意:不使用1.13.1版本,该版本在jenkins使用docker命令时会说找不到配置文件
1.安装docker:yum -y install docker-ce-20.10.10-3.el7
2.查看docker版本:docker -v
3.启动docker:systemctl start docker
4.查看docker 启动状态:systemctl status docker
5.检查安装结果:docker info
运行Docker守护进程:systemctl start docker
停止Docker守护陆凯进程:systemctl stop docker
重启Docker守护进程:systemctl restart docker
6.查看容器:docker ps
7.停止容器:docker stop 容器id
三:修改镜像仓库:
vim /etc/docker/daemon.json
添加如下内容:
{
"debug":true,"experimental":true,"registry-mirrors":["","",""]
}
8.查看信息:docker info
仅供个人学习使用,如有不足请指出。
愿景:愿天下所有程序员能早日财富自由,永不搬砖!
怎样在阿里云上安装docker
更多1
Linux
因为debian 7安装docker的手续比较麻烦,所以我把阿里云的系统换成了ubuntu 14.04,然后参考:
还算比较方便:apt-get update apt-get install docker.io,然后再改两个配置就完事了。
不过,在你运行docker run -i -t ubuntu /bin/bash的时候,会报错,说是docker -d好象没有运行,这不科学灶铅银 啊,刚刚不是装好的吗?
于是ps aux|grep docker,果然没有进程,于是直接输入:docker -d,然后就发现报错了:
2014/08/18 12:05:42 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
老规矩,内事不决问度娘,外事不决问谷歌,结果居然看到有人回复 :
当时这个心就碎了,心想这不科学啊,于是再google,就真的发激扒现了:
OK,那就试试吧:隐宴
sudo brctl addbr docker0 # create your bridge
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
sudo ip link set dev docker0 up # bring it up - not really sure if this is necessary or is it done automatically
sudo ifconfig docker0 10.0.0.4 # give it an IP
当然要运行brctl还是要装一个bridge-utils工具的,当然这个ubuntu会提醒你,一步步的做完后,docker 果然可以启动了。这时候再运行一下,service docker.io start,然后ps aux|grep docker,进程还活着。
于是输入:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
2014/08/18 12:16:44 Get : dial tcp: lookup index.docker.io on 10.143.22.118:53: no answer from server
咦。不能上网。其实就是上面的代码的问题,因为默认aliyun的eth0是内网IP,所以上述的
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
这里应该用eth1
重新执行一下。然后再次运行:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
c5881f11ded9: Download complete
。。。。。。。
整个就完成了