zoukankan      html  css  js  c++  java
  • Dockerfile构建镜像

    以创建一个web服务器的镜像为例:

    首先创建一个目录并进入创建Dockerfile文件。这个目录是构建环境还有在构建过程中需要上传到构建镜像中文件的本地存放位置

    mkdir web_file
    cd web_file
    touch Dockerfile

    vim Dockerfile构建一个简单的镜像文件

    # Version: 0.0.1
    FROM ubuntu:14.04
    MAINTAINER 作者 Turnbull “邮箱”
    RUN apt-get update && apt-get install -y nginx
    RUN echo 'hello' > /usr/share/nginx/html/index.html
    EXPOSE 80

    Dockerfile是由指令和参数组成,每条指令都必须为大写字母,顺序从上到下执行。

    FROM 指定一个镜像作为基础镜像

    MAINTAINER 来定义作者还有邮箱标识所有者和联系方式

    RUN 定义在镜像中运行的命令

    #在目录下执行构建命令
    docker bulid -t=“yy/static_web” .

    -t 设置新镜像的仓库和名称

    . 表示在本地目前去寻找Dockerfile文件,1.5之后可以通过-f来指定文件路径

    docker history 镜像ID 来查看新镜像的每层的构建

    启动新镜像

    docker run -d -p 80 --name static_web yy/static_web nginx -g "daemon off;"

    这里通过yy/static_web镜像启动一个名为static_web的新容器,-d表示用于后台运行, nginx -g "daemon off;"容器中运行的命令表示以前台方式启动nginx

    -p 控制docker容器在运行时公开的网络端口给宿主机

     -p 9090:80 表示将容器的80端口绑定本地宿主机的9090端口

    -P 对外公开在dockerfile中expose公开的端口绑定到宿主机随机的一个端口

    查看容器端口绑定的IP

    docker port 镜像ID 端口

    Dockerfile指令

    CMD

    指定一个容器启动时要运行的命令,类似于RUN,RUN是指定构建是运行的命令

    运行命令放在数组结构中,-l是可以加传递的参数;注意:RUN命令会覆盖CMD的命令

    CMD ["/bin/bash","-l"]  

    WORKDIR

    从镜像创建一个新的容器时,在容器内部设置一个工作目录

    WORKDIR /opt/webapp/db

    RUN bundle install

    WORKDIR /opt/webapp

    表示将工作目录切换为/opt/webapp/db后执行了命令后又切换到/opt/webapp

    注意:可以通过 -w标志在运行时覆盖工作目录

    如:run -t -w /var/log 

    ENV 

    用来在镜像构建过程中设置环境变量

    ENV HOME_PATH /home/rvm 

    WORKDIR $HOME_PATH

    USER

    用来指定改镜像用什么身份来运行,可以指定用户名或者UID、组、GID

    运行时使用-u来覆盖

    VOLUME

    基于镜像创建的容器添加卷

    ADD

    将构建环境下的文件和目录复制到镜像中

    ADD nginx.conf /etc/nignx.conf

    ADD laster.tar.gz /var/www/html  可以将压缩的文件服务过去自动解压

    COPY 

    相当于ADD 但不会有自动解压

  • 相关阅读:
    linux 解压文件
    linux 文件夹操作
    adb 安装apk报INSTALL_FAILED_NO_MATCHING_ABIS
    Android Tab类型主界面 Fragment+TabPageIndicator+ViewPager
    Android 图表
    Android Manifest文件
    BroadcastReceiver介绍
    Android dimen
    Android Dialog
    Android 获取加速传感器的值,并去除杂音
  • 原文地址:https://www.cnblogs.com/aloneysir/p/11424854.html
Copyright © 2011-2022 走看看