Kubernetes学习笔记 - Day02 Docker初体验


Day02 容器初体验--在Docker上运行WEB应用

  1. 操作系统

    Ubuntu

  2. 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
        
  3. 在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少打了一个字母