制作整合centos7和python3的docker基础镜像
时间:2019-11-27
本文章向大家介绍制作整合centos7和python3的docker基础镜像,主要包括制作整合centos7和python3的docker基础镜像使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
docker安装
linux mint下docker的安装步骤参照linux mint 19 安装docker
基础镜像制作
- 提升到root权限
- 建立空文件夹
images
- 在
images
文件夹中创建文件dockerfile
或Dockerfile
(不需要后缀名),文件内容如下:
FROM centos:7.6.1810
MAINTAINER username # 指定作者信息
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.5.0/Python-3.5.0.tgz \
&& tar -zxvf Python-3.5.0.tgz \
&& cd Python-3.5.0 \
&& ./configure prefix=/usr/local/python3 \
&& make \
&& make install \dock
&& make clean \
&& rm -rf /Python-3.5.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/pip-python2.7 \
# 配置默认为python3
&& ln -s /usr/local/python3/bin/python3.5 /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
- 在
images
路径下执行命令docker build -t centos-with-python .
,注意后面的.
不能去掉。
root@ThinkPad-X280:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos-with-python latest e96f7cfd1865 5 days ago 1.09GB
python 3 a2aeea3dfc32 12 days ago 932MB
ubuntu 16.04 5f2bf26e3524 3 weeks ago 123MB
ubuntu latest 775349758637 3 weeks ago 64.2MB
centos 7.6.1810 f1cb7c7d58b7 8 months ago 202MB
python 2.7.15 afc94ac1e19b 9 months ago 925MB
其他
制作镜像过程中需要下载一些依赖,如果下载速度过慢可以考虑更换docker的源,在lnux mint
的操作步骤具体如下:
- 以
root
权限进入/etc/docker
; - 修改
daemon.json
为如下内容:
# 配置多个国内docker源
{
"registry-mirrors":["https://registry.docker-cn.com", "http://hub-mirror.c.163.com","https://pee6w651.mirror.aliyuncs.com"]
}
- 重启
docker
,service docker restart
- 使用
pip
安装第三方包时如果速度过慢,可用通过-i
参数指定源,例如:
sudo pip3 install pandas -i https://pypi.tuna.tsinghua.edu.cn/simpl
原文地址:https://www.cnblogs.com/crazysquirrel/p/11943802.html
- 数据结构之图
- 您需要来一份82年的代理吗?No.12
- Python 列表生成式(List Comprehensions)
- 微信小程序开发日记:重要的var that=this
- linux学习第二十六篇:正则介绍,grep,sed,awk命令
- Python 迭代(iteration)
- Python 切片(Slice)
- Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
- linux学习第二十七篇:使用w查看系统负载,vmstat,top,sar,nload命令
- Python 函数
- Python set(集合) 这一定是最全的介绍集合的博文
- Spark你一定学得会(二)No.8
- Python dict(字典)
- Python 条件判断
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【CPP】《程序员面试金典》习题(1)——数组与字符串
- 【CPP】《程序员面试金典》习题(2)——链表
- 【CPP】《程序员面试金典》习题(3)——栈和队列
- PPYOLO:2020不容错过的目标检测调参Tricks
- 【笔记】《C++Primer》—— 第11章:关联容器
- 【笔记】《C++Primer》—— 第12章:动态内存
- 【笔记】《C++Primer》—— 第13章:拷贝控制
- 【笔记】《C++Primer》—— 第16章:模板与泛型编程
- 【笔记】《C++Primer》—— 第19章:特殊工具与技术
- 【翻译】C++14的新特性简介
- Python 为什么要有 pass 语句?
- 【翻译】C++17的新特性简介
- 各类SQL日期时间处理方法
- 这可能是最全最实用的Vim操作集合
- 个人珍藏的80道多线程并发面试题(1-10答案解析)