• 搭建自己的docker镜像


    手动构建

    1.关键字查找镜像

    sudo docker search centos

    2.下载基本镜像

    sudo docker pull centos

    3.启动容器

    sudo docker run -d -it --name centos1 -h centos1 -p 91:80 -v /home/root:/my_python -w my_python centos /bin/bash
    # 查看已经启动的docker
    docker container ls

    4.进入容器

    sudo docker exec -it 容器id /bin/bash

    5.进入更新软件

    apt-get update

    6.安装软件

    yum install -y gcc   等

    7.退出

    exit

    8.停止容器

    docker stop 容器id

    9.提交镜像

    sudo docker commit -m "python3" 73795020d9d8 ubuntu-python3:3.5
    73795020d9d8 容器id
    ubuntu-python3 名字
    3.5 :版本号
    

    dockerfile构建

    1.创建Dockerfile文件     D要大写

    vim Dockerfile
    

      

    # This is My first Dockerfile
    # Version 1.0
    # Author: yu
    
    # Base image    最基础的镜像
    FROM centos
    
    # MAINTAINER 维护者  (已弃用)  用LABEL
    LABEL maintainer="yu"
    
    # ADD  添加文件  COPY也可以文件  但是ADD可以解压缩文件
    ADD plist.txt(文件名称,这个路径,同级目录) /usr/local/src(添加到的路径)
    ADD pore-8.37.tar.gz /usr/local/src
    ADD nginx-1.9.3.tar.gz /usr/local/src
    
    # RUN 要干什么   运行shell命令  安装软件和包
    RUN yum install -y wget gcc gcc-c++ make openssl-devel
    RUN useradd -s /sbin/nologin -M www   # 添加用户
    
    # WORKDIR 相当于cd   进入目录 尽量使用绝对目录
    WORKDIR /usr/local/src/plist.txt
    RUN pip install -r plist.txt
    RUN ./configure --prefix=/uer/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/uer/local/src/pcre-8.37 && make && make install
    RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
    
    # ENV 配置环境变量
    ENV PATH  /ust/local/nginx/sbin:$PATH
    
    # EXPOST 映射端口  还可以设置端口监听是tcp或者udp  默认是tcp   tcp可以不写
    EXPOST 80/tcp
    
    # CMD 执行命令   1.设置容器启动后默认执行的命令参数  2.如果docker run指定了其他命令,cmd命令会被忽略  3.如果定义了多个cmd,只会执行最后一个
    CMD ['nginx']

    # ENTRYPOINT 设置容器启动时运行的命令 1.让容器以应用程序或者服务的形式运行 2.不会被忽略,一定会执行 3.最佳实践:写一个shell脚本为entrypoint

    2.运行Dockerfile文件

    docker build -t(取个名称) my_nginx:V2  .(Dockerfile文件路径,也可以写绝对路径)
    

      

  • 相关阅读:
    ADO.NET Entity Framework如何:通过每种类型多个实体集定义模型(实体框架)
    ADO.NET Entity Framework EDM 生成器 (EdmGen.exe)
    编程之美的求阶乘结果末尾0的个数
    JS 自动提交表单时 报“对象不支持此属性”错误
    php168商务系统品牌无法生成的解决办法
    如何从Access 2000中表删除重复记录
    服务器IUSR_机器名账号找不到怎么办?
    SQL2005 重建全文索引步骤 恢复数据时用到
    PHP页面无法输出XML的解决方法
    bytes2BSTR 解决ajax中ajax.responseBody 乱码问题
  • 原文地址:https://www.cnblogs.com/yoyo1216/p/10879919.html
Copyright © 2020-2023  润新知