dockerfile

Dockerfile

  1. FROM 基础镜像(使用docker search 选择需要的基础镜像)

  2. COPY
    复制的时候希望能保留原本的目录

    COPY ./ /admin/
    
    RUN ls -la /admin/*
    
  3. RUN 运行命令,每RUN即新增一层

  4. WORKDIR 设置工作目录,进入容器后的当前目录

  5. ENV 设置环境变量

    • ENV LANG=C.UTF-8 设置C语言的utf-8编码
    • ENV LANG=en_US.UTF-8
    • ENV LC_ALL=en_US.UTF-8
  6. 安装基础常用命令

    • centos : RUN yum update -y
    RUN yum update -y && yum -y install vim wget curl unzip zip gcc make lsof zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libffi-devel libpcap-devel xz-devel git make libaio libnsl
    
    
    • redhot: RUN apt-get update && apt-get install vim
  7. 配置单独python环境(系统自带python环境一般为python2)

    RUN mkdir ~/.pyenv && git clone git://github.com/yyuu/pyenv.git ~/.pyenv
    RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    RUN echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    RUN source ~/.bashrc
    RUN /root/.pyenv/bin/pyenv install --list 
    RUN /root/.pyenv/bin/pyenv install 3.6.8 -v && /root/.pyenv/bin/pyenv global 3.6.8
    RUN /root/.pyenv/shims/pip install --upgrade pip
    
  8. ENTRYPOINT 和 CMD 命令区别

    ENTRYPOINT 和 CMD 命令告知后台程序启动时候需要执行的命令,当docker run 的时候加了参数,cmd 里面的默认命令或者参数会被覆盖
    所以ENTRYPOINT里面放不变的一定要执行的命令,可变参数可以放在CMD命令
    例如:
    ENTRYPOINT ["/root/.pyenv/shims/python3.6", "/home/admin/manage.py", "runserver", "&"]
    
posted @ 2020-04-10 17:18  今日店休  阅读(143)  评论(0编辑  收藏  举报