使用dockerfile构建python3的镜像并启动容器另一种方式
1.新建目录Dockerfiles
mkdir Dockerfiles
cd Dockerfiles
2.新建文件Dockerfile
touch Dockerfile
写入以下内容:
FROM centos:7.6.1810
MAINTAINER test # 指定作者信息
RUN set -ex \
# 预安装所需组件
&& yum install -y wget tar libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make initscripts \
&& wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz \
&& tar -zxvf Python-3.7.0.tgz \
&& cd Python-3.7.0 \
&& ./configure prefix=/usr/local/python3 \
&& make \
&& make install \
&& make clean \
&& rm -rf /Python-3.7.0* \
&& yum install -y epel-release \
&& yum install -y python-pip
# 设置默认为python3
RUN set -ex \
# 备份旧版本python
&& mv /usr/bin/python /usr/bin/python27 \
&& mv /usr/bin/pip /usr/bin/pip27 \
# 配置默认为python3
&& ln -s /usr/local/python3/bin/python3.7 /usr/bin/python \
&& ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
# 修复因修改python版本导致yum失效问题
RUN set -ex \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/bin/yum \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/libexec/urlgrabber-ext-down \
&& yum install -y deltarpm
# 基础环境配置
RUN set -ex \
# 修改系统时区为东八区
&& rm -rf /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& yum install -y vim \
# 安装定时任务组件
&& yum -y install cronie
# 支持中文
RUN yum install kde-l10n-Chinese -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
# 更新pip版本
RUN pip install --upgrade pip
ENV LC_ALL zh_CN.UTF-8
3.dockerfile构建镜像
docker build命令会创建一个镜像
- -f:指定dockerfile文件
- -t:指定镜像名称
在Dockerfile文件目录下执行:
docker build -t python:37 .
4.启动容器
docker run 命令会创建一个名为python的容器
- -i:互交模式
- -t:终端模式
- -d:后台启动
- –name:容器名称,即后面的python
- -v:资源卷映射,主机目录、文件映射到容器目录、文件
docker run -itd --name python --restart always --privileged=true -v /root/dockers/python:/root/python -v /root/dockers/python/cron:/var/spool/cron python:37 /usr/sbin/init
5.进入容器
docker exec -it python /bin/bash
6.退出容器
本方式为退出容器并不关闭容器
Ctrl+P+Q
标签:bin,install,python,yum,usr,&&,镜像,dockerfile,python3
From: https://blog.csdn.net/weixin_45014634/article/details/144526241