Day02 容器初体验--在Docker上运行WEB应用
操作系统
Ubuntu
Docker的安装
卸载旧版
sudo apt-get remove docker docker-engine docker.io containerd runc
使用Docker仓库进行安装
更新apt
sudo apt-get update
安装apt依赖包
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
验证是否拥有指纹密钥
sudo apt-key fingerprint 0EBFCD88
设置稳定版仓库
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
安装Docker Engine-Community
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
查看可用版本
apt-cache madison docker-ce
选择一个版本进行安装
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
测试Docker是否安装成功
sudo docker run hello-world
在Docker环境中创建Flask应用
在本地文件夹(source)中创建一个app.py文件,内容如下:
from flask import Flask import socket import os app = Flask(__name__) @app.route('/') def hello(): html = "<h3>hell{name}</h3>"\ "<b>Hostname</b>{hostname}" return html.format(name=os.getenv("NAME", "World"), hostname = socket.gethostname()) if __name__ == "__main__": app.run(host='0.0.0.0', port=80)
创建一个依赖文件packge.txt,用来在Docker中安装Python需要的库
Flask
创建Dockerfile内容如下
# 使用官方提供的Python开发镜像作为基础镜像 FROM python:3.7-slim # 将工作目录切换为/source WORKDIR /source # 将当前目录下的所有内容复制到/source下 ADD . /source # 使用pip命令安装这个应用所需要的依赖 RUN pip install -r packge.txt # 允许外界访问容器的80端口 EXPOSE 80 # 设置环境变量 ENV NAME Tango # 设置容器进程为:python app.py,即:这个Python应用的启动命令 CMD ["python", "app.py"]
确保这三个文件在同一个文件夹下面
创建Docker镜像
docker build -t hello .
hello 是我为镜像起的别名,实际工作中大部分都是服务的名字,比如mongodb等等。
hello后面的句号不要忘了
查看创建好的镜像列表
docker image ls
启动我们的容器
docker run -p 4000:80 hello
将本地的4000端口号和容器中的80端口进行绑定
在外网验证一下有没有成功
我这里用的是腾讯的服务器,本地的虚拟机安装Docker太慢了。hello少打了一个字母