zoukankan      html  css  js  c++  java
  • docker使用---2:dockerfile

    # docker基础命令
    # 下载基础镜像 docker pull centos
    # 创建并启动进入shell docker run --name xxx -it images:tag bash 格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    # docker run 常用参数 -v:绑定一个卷 --net:指定容器的网络连接类型,默认bridge --shm-size :设置 /dev/shm 的大小,默认值是 64M
    # 启动 docker start ID
    # 关闭 docker stop ID
    # 进入docker环境shell docker exec -it ID /bin/bash
    # 查看容器 docker ps -all
    # 删除容器 docker rm ID
    # 查看镜像 docker images
    # 删除镜像 docker rmi ID

    # dockerfile基础命令
    # FROM 指令用于设置在新映像创建过程期间将使用的容器映像。
    # RUN 指令指定将要运行并捕获到新容器映像中的命令。 这些命令包括安装软件、创建文件和目录,以及创建环境配置等。
    # COPY 指令将文件和目录复制到容器的文件系统。文件和目录需位于相对于 Dockerfile 的路径中。
    # ADD 指令与 COPY 指令非常类似,但它包含更多功能。除了将文件从主机复制到容器映像,ADD 指令还可以使用 URL 规范从远程位置复制文件。
    # WORKDIR 指令用于为其他 Dockerfile 指令(如 RUN、CMD)设置一个工作目录,并且还设置用于运行容器映像实例的工作目录。
    # CMD指令用于设置部署容器映像的实例时要运行的默认命令。例如,如果该容器将承载 NGINX Web 服务器,则 CMD 可能包括用于启动Web服务器的指令,如 nginx.exe。 如果 Dockerfile 中指定了多个CMD 指令,只会计算最后一个指令。
    # ENTRYPOINT 配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个ENTRYPOINT,当指定多个时,只有最后一个起效。
    # ENV命令用于设置环境变量。这些变量以”key=value”的形式存在,并可以在容器内被脚本或者程序调用。这个机制给在容器中运行应用带来了极大的便利。
    # EXPOSE用来指定端口,使容器内的应用可以通过端口和外界交互。(该映射端口号并无法实现真正的映射,需要在执行run 设置端口)
    #dckerFile启动 docker build -f /usr/local/docker_file/Dockerfile -t centos7/python2.7.15:v1 .
    #docker build 最后的.是指定镜像构建过程中上下文环境的目录
    #docker容器导出为镜像 docker commit container_name image_name:tag
    #docker上传镜像docker push image_name

    # nginx 使用
    # nginx 启动 /usr/local/nginx/sbin/nginx
    # nginx 关闭 /usr/local/nginx/sbin/nginx -s stop
    # nginx 重启(需要nginx处于运行状态,一般在修改了配置文件后使用) /usr/local/nginx/sbin/nginx -s reload




    FROM docker.io/centos:7

    MAINTAINER FCJ
    MAINTAINER xxxx@qq.com

    # 源码安装python2.7.15
    # 安装路径:/usr/local/python2.7.15
    # 1.1:安装Python2.7.15环境(mini环境没有安装make需要手动安装),先删除自带的python软连接,新增2.7.15软连接,修改yum中的Python地址到python2(该python是原有python版本)
    # 1.2: 并将python默认版本更换为2.7.15
    # 1.3: python默认版本修改后会导致yum不可用,需要修改/ur/bin/yum和/usr/libexec/urlgrabber-ext-down的python版本为原版本
    # 源码安装nginx-1.16.1
    # 安装路径:/usr/local/nginx1.16.1
    RUN echo "---------- 1:install python env -----------" &&
    yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel &&
    yum -y install gcc gcc-c++ automake autoconf libtool make wget &&
    wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz -P /tmp &&
    tar -zxvf /tmp/Python-2.7.15.tgz -C /tmp/ &&
    mkdir /usr/local/python2.7.15 &&
    cd tmp/Python-2.7.15 &&
    ./configure --enable-optimizations --prefix=/usr/local/python2.7.15 && make && make install &&
    unlink /usr/bin/python &&
    ln -s /usr/local/python2.7.15/bin/python /usr/bin/python &&
    sed -i '1c#!/usr/bin/python2' /usr/bin/yum &&
    sed -i '1c#!/usr/bin/python2' /usr/libexec/urlgrabber-ext-down &&
    echo "---------- end install python env -----------" &&
    echo "---------- 2:install pip -----------" &&
    wget https://bootstrap.pypa.io/get-pip.py -P /tmp
    python /tmp/get-pip.py
    ln -s /usr/local/python2.7.15/bin/pip /usr/bin/pip
    echo "---------- end install pip -----------" &&
    echo "---------- 3:install uwsgi -----------" &&
    pip install uwsgi
    ln -s /usr/local/python2.7.15/bin/uwsgi /usr/bin/uwsgi
    echo "---------- end install uwsgi -----------" &&
    e cho "---------- 3: install nginx ----------" &&
    wget http://nginx.org/download/nginx-1.9.9.tar.gz -P /tmp
    tar -zxvf /tmp/nginx-1.9.9.tar.gz -C /tmp
    cd /tmp/nginx-1.9.9
    ./configure --prefix=/usr/local/nginx && make && make install &&
    echo "---------- end install nginx ----------"

    EXPOSE 8090
  • 相关阅读:
    hdu 5154 拓扑排序
    CSS性能优化的8个技巧
    移动端性能监控方案Hertz
    箴言
    如何使网页的文字不能被复制
    flyio 的请求封装
    vue-cli3.0 环境变量与模式
    函数防抖和函数节流
    CSS世界中那些说起来很冷的知识
    vue多层次组件监听动作和属性
  • 原文地址:https://www.cnblogs.com/fuchenjie/p/12675458.html
Copyright © 2011-2022 走看看