zoukankan      html  css  js  c++  java
  • dockerfile

    1.准备一个flask代码,准备python代码


    from flask import Flask
    app=Flask(__name__)
    @app.route('/')
    def hello():
    return "hello docker,i am sbwueiqi, i am in s14 "
    if __name__=="__main__":
    app.run(host='0.0.0.0',port=8080)


    2.准备Dockerfile,准备好所有需要的文件


    [root@node1 /data/mydocker 10:33:53]#ls
    CentOS-Base.repo Dockerfile epel.repo myflask.p

    cat Dockerfile
    FROM centos
    LABEL maintainer="Chao Yu<yc_uuu@163.com>"
    ADD CentOS-Base.repo /etc/yum.repos.d/
    ADD epel.repo /etc/yum.repos.d/
    RUN yum clean all
    RUN yum install python-pip -y
    RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
    COPY myflask.py /app/
    WORKDIR /app
    EXPOSE 8080
    CMD ["python","myflask.py"]
    1.引入一个centos镜像,为基础镜像
    2.作者注释信息
    3.添加本地的两个yum文件,到容器的/etc/yum.repos.d/底下
    4.清空yum缓存
    5.yum安装pip工具
    6.pip安装flask模块,指定清华源
    7.拷贝本地的flask代码,到容器的/app/目录下
    8.切换工作目录,到/app底下
    9.暴露容器的8080端口,然后在运行镜像时候,加上-p参数,指定端口映射
    10.执行命令,运行flask

    3.构建docker镜像文件


    docker build -t yuchao163/s14-flask-docker .
    #构建当前目录的Dcokerfile,然后构建出一个名为yuchao163/s14-flask-docker 这个的镜像文件
    -t tag参数,给镜像加上标记名
    dockerhub账户名:yuchao163

    dockerhub账户名/镜像名 #是为了后面讲docker镜像,推送到dockerhub

    4.查看镜像是否构建完成


    docker images

    5.运行这个镜像文件,产生容器实例

    docker run -p 9000:8080 -d 43d
    -p 映射9000端口到容器的8080
    -d 后台运行
    43d 镜像id

    6.查看已经运行的docker实例

    docker ps

    7.学习dockerhub,发布自己的docker镜像

    1.我可以先下载其他人的docker镜像

    docker pull yuchao163/hello-world-docker

    2.上传自己的docker镜像
    docker login #登录自己的docker hub账号 ,输入密码
    #docker就会有你自己的dockerhub账号信息 yuchao163

    3.更改docker镜像的名字,也就是加上一个tag标记
    docker tag s14/centos-vim yuchao163/s14-centos-vim
    docker tag 现有镜像名字 dockerhub账户名/新的镜像名
    4.登录后可以推送镜像文件,此时推送给的是自己的yuchao163账号仓库下
    docker push yuchao163/s14-hello-docker

    5.登录https://hub.docker.com/查看自己推送的公网镜像

    8.构建公司私有docker仓库,其实就是搭建一个api服务器,通过api可以下载镜像


    1.下载docker官方提供的私有仓库镜像
    docker pull registry
    2.查看镜像
    docker images
    3.启动一个私有仓库容器
    docker run -d
    -p 5000:5000
    -v /opt/data/registry:/var/lib/registry
    registry
    4.此时可以检查容器进程
    docker ps
    5.此时私有仓库就打开了5000端口,通过端口映射,访问宿主机的5000端口,查看是否通信
    yum install telnet -y

    telnet 127.0.0.1 5000 #检测5000端口是否通信

    6.修改本地镜像的tag标签,标注我要往哪push镜像
    docker tag docker.io/hello-world 192.168.12.96:5000/s14-hello

    7.修改docker配置,允许非安全的传输方式

    1.vim /etc/docker/daemon.json,写入信息,私有仓库地址,都得改成自己的
    {"registry-mirrors": ["http://95822026.m.daocloud.io"],
    "insecure-registries":["192.168.12.96:5000"]
    }
    2.修改docker.server
    vim /lib/systemd/system/docker.service
    #写入如下信息,请在[service]中写入
    [Service]
    EnvironmentFile=/etc/docker/daemon.json


    8.重启docker服务,使得生效


    systemctl daemon-reload #重新加载docker配置文件

    systemctl restart docker #重启docker服务


    9. #重启docker服务,会停止容器,因此要再次启动


    docker ps -a
    docker start b23bcfe42e80 #启动这个私有仓库容器

    10.推送本地镜像到 私有仓库 192.168.12.96:5000


    docker push 192.168.12.96:5000/s14-hello

    11.此时访问api接口,查看私有仓库的数据


    http://192.168.12.96:5000/v2/_catalog



    docker的数据集挂载功能
    -v 参数 挂载宿主机的文件:容器内的文件夹
    -v /opt/data:/opt/s14/

    docker run -p 8000:8080 -v /opt/s14:/opt/data/ -d 43d
    启动容器,通过-v参数挂载
    挂载容器内的/opt/data/文件夹,其实访问的是宿主机的/opt/s14/

    -p 7000:5000


  • 相关阅读:
    Apache 虚拟主机 VirtualHost 配置
    EAX、ECX、EDX、EBX寄存器的作用
    Python中文文档 目录(转载)
    八度
    POJ 3268 Silver Cow Party (最短路)
    POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
    2013金山西山居创意游戏程序挑战赛——复赛(1) HDU 4557 非诚勿扰 HDU 4558 剑侠情缘 HDU 4559 涂色游戏 HDU 4560 我是歌手
    HDU 4549 M斐波那契数列(矩阵快速幂+欧拉定理)
    UVA 11624 Fire! (简单图论基础)
    HDU 3534 Tree (树形DP)
  • 原文地址:https://www.cnblogs.com/du-jun/p/10790883.html
Copyright © 2011-2022 走看看