Dockerfile配置
#基于centos7构建
FROM centos:7
#管理者信息
MAINTAINER Candyeel "1092824310@qq.com"
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
#centos设置环境变量会报/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
ENV LANG zh_CN.UTF-8
#ENV LC_ALL zh_CN.UTF-8
#所以需要在设置环境变量之后使用localedef创建一个字符集
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
#安装node
RUN yum -y install wget
RUN yum -y install gcc gcc-c++
RUN cd /usr/local/ && mkdir node
RUN wget https://npm.taobao.org/mirrors/node/v14.15.4/node-v14.15.4-linux-x64.tar.gz
RUN mv node-v14.15.4-linux-x64.tar.gz /usr/local/node/ && ls
RUN cd /usr/local/node/ && tar -xzvf node-v14.15.4-linux-x64.tar.gz && ls
#创建软链接
RUN ln -s /usr/local/node/node-v14.15.4-linux-x64/bin/node /usr/local/bin/node \
&& ln -s /usr/local/node/node-v14.15.4-linux-x64/bin/npm /usr/local/bin/npm
#CMD ["node","-v"]
#安装python
RUN yum install -y epel-release \
&& yum install -y wget
RUN yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
RUN wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
RUN mv Python-3.6.5.tgz Python-3.6.5.tar.gz; tar -xvzf Python-3.6.5.tar.gz
RUN cd Python-3.6.5; ./configure prefix=/usr/local/python3 ; make && make install
#创建软连接
RUN ln -s -f /usr/local/python3/bin/python3 /usr/bin/python \
&& ln -s -f /usr/local/python3/bin/pip3 /usr/bin/pip
RUN sed -i "1i #!/usr/bin/python2" /usr/bin/yum && sed -i "2d" /usr/bin/yum
RUN pip install --upgrade pip \
&& pip install requests -i https://pypi.douban.com/simple \
&& pip install PyExecJs -i https://pypi.douban.com/simple \
&& pip install flask -i https://pypi.douban.com/simple
#添加相应文件 前面是宿主机的文件位置 后面是放在容器里面的文件
ADD ./flask_api.py /flask_api.py
ADD ./get_cookie.js /get_cookie.js
#切换工作环境 (这里切换的是容器内部的工作路径)
WORKDIR /
#暴露端口
EXPOSE 8050
#运行命令 这里是用python启动了一个flask服务
CMD ["python", "./flask_api.py"]
- 构建容器
格式:docker build -t 容器名:版本号 .
docker build -t my_python_container:new .
- 启动容器
格式:docker run --name 容器别名 -d -p 主机端口:容器端口 容器名:版本号
docker run --name new_container -d -p 8050:8050 my_python_container:new