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


  • 相关阅读:
    RSA算法
    Windows-caffe配置
    python 下 excel,csv 文件的读写
    python 网络通讯 服务器端代码demo,能够同时处理多个客户端的连接请求
    python 下串口数据的读取,解析,和保存-
    XML字符串和JAVA对象之间的转化
    MySQL的join on和 where 的执行顺序和区别,以及各种连接说明
    全国各行政区行政编码
    计数器+打卡+习惯+目标APP推荐
    安卓计数器类APP推荐
  • 原文地址:https://www.cnblogs.com/du-jun/p/10790883.html
Copyright © 2011-2022 走看看