FROM 基础镜像(使用docker search 选择须要的基础镜像)python
COPY
复制的时候但愿能保留本来的目录git
COPY ./ /admin/ RUN ls -la /admin/*
RUN 运行命令,每RUN即新增一层github
WORKDIR 设置工做目录,进入容器后的当前目录sql
ENV 设置环境变量docker
安装基础经常使用命令vim
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
配置单独python环境(系统自带python环境通常为python2)centos
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
ENTRYPOINT 和 CMD 命令区别bash
ENTRYPOINT 和 CMD 命令告知后台程序启动时候须要执行的命令,当docker run 的时候加了参数,cmd 里面的默认命令或者参数会被覆盖 因此ENTRYPOINT里面放不变的必定要执行的命令,可变参数能够放在CMD命令 例如: ENTRYPOINT ["/root/.pyenv/shims/python3.6", "/home/admin/manage.py", "runserver", "&"]