zoukankan      html  css  js  c++  java
  • Dockerfile怎么用

    Docker的Dockerfile

    Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于基础镜像并最终创建一个新的镜像。

    1、对于开发人员:可以为开发团队提供一个完全一致的开发环境;

    2、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;

    3、对于运维人员:在部署时,可以实现应用的无缝移植。

    1、常用命令

    Dockerfile中使用频繁的命令

    命令 作用
    FROM image_name:tag 定义了使用哪个基础镜像启动构建流程
    MAINTAINER user_name 声明镜像的创建者
    ENV key value 设置环境变量 (可以写多条)
    RUN command 是Dockerfile的核心部分(可以写多条)
    ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
    COPY source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件并不能解压
    WORKDIR path_dir 设置工作目录(一进容器就进这个目录)
    # 举例:实际Dockerfile是什么样子的
    
    # 文件名必须叫 Dockerfile
    
    
    FROM python:3.6
    MAINTAINER lqz
    RUN pip install django==1.11.9  -i https://pypi.doubanio.com/simple
    RUN mkdir /home/donner  # 创建这个文件夹
    WORKDIR /home  # 进入容器后直接进入home目录
    ADD a.tar # 等价于先copy a.tar再 tar a.tar解压
    

    2、使用Dockerfile创建镜像

    当你有了Dockerfile文件后,你就可以通过这个文件创建镜像了。

    # 通过Dockerfile创建镜像。注意后边的空格和点,不要省略
    docker build -t='镜像名' . 
    
    [root@alicentos ~/test]# docker build -t='django1.11.9' .
    Sending build context to Docker daemon  2.048kB
    Step 1/5 : FROM python:3.6
     ---> 1daf62e8cab5
    Step 2/5 : MAINTAINER donner
     ---> Running in 6f9c77f42cc8
    Removing intermediate container 6f9c77f42cc8
     ---> 918405cff10a
    Step 3/5 : RUN pip install django==1.11.9  -i https://pypi.doubanio.com/simple
     ---> Running in 07e621fba5b9
    Looking in indexes: https://pypi.doubanio.com/simple
    Collecting django==1.11.9
      Downloading https://pypi.doubanio.com/packages/c8/a6/291039f0ce4b9818e0399359866337e6dfe9c0e23d8d94f00e657edbfcd8/Django-1.11.9-py2.py3-none-any.whl (6.9 MB)
    Collecting pytz
      Downloading https://pypi.doubanio.com/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509 kB)
    Installing collected packages: pytz, django
    Successfully installed django-1.11.9 pytz-2019.3
    Removing intermediate container 07e621fba5b9
     ---> 01367e1b5832
    Step 4/5 : RUN mkdir /home/donner
     ---> Running in 705bd8f7ab90
    Removing intermediate container 705bd8f7ab90
     ---> 9d8734c77e0b
    Step 5/5 : WORKDIR /home
     ---> Running in d3f874dfba6a
    Removing intermediate container d3f874dfba6a
     ---> 8dec7aace37d
    Successfully built 8dec7aace37d
    Successfully tagged django1.11.9:latest
    [root@alicentos ~/test]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    django1.11.9        latest              8dec7aace37d        10 seconds ago      950MB
    [root@alicentos ~/test]# 
    [root@alicentos ~/test]# docker run -it --name=mydjango django1.11.9 /bin/bash
    root@9dd41dc07634:/home# ls
    donner
    root@9dd41dc07634:/home# pip list
    Package    Version
    ---------- -------
    Django     1.11.9 
    pip        20.0.2 
    pytz       2019.3 
    setuptools 45.2.0 
    wheel      0.34.2 
    root@9dd41dc07634:/home# 
    
    
    
    然后就可以通过这个镜像创建容器了!
    
  • 相关阅读:
    PHP操作redis
    鼠标失去焦点处理办法
    关于HTTP协议,一篇就够了
    什么是 CDN(超形象)
    网站部署之~阿里云系列汇总
    阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)
    mysql备份与还原
    .NET框架之“小马过河”
    .NET使用Bogus生成大量随机数据
    .NET中的值类型与引用类型
  • 原文地址:https://www.cnblogs.com/bowendown/p/12623741.html
Copyright © 2011-2022 走看看