0
点赞
收藏
分享

微信扫一扫

Docker:基于 CentOS 搭建 python3.8 开发环境并保存镜像

拾光的Shelly 2021-09-30 阅读 76

1. 下载镜像

默认下载最新版 CentOS,如果有需要可以指定版本;

docker pull centos

2. 启动镜像 & 进入容器

docker run -i -t centos /bin/bash

参数说明:

  • i: 交互式操作;
  • t: 终端;
  • centos: 镜像名称,这是指用 centos 版本镜像为基础来启动容器;
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

3. 安装编译工具和环境

yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
yum -y install gcc automake autoconf libtool make wget
yum -y install yum-utils
yum -y install libffi-devel
yum-builddep python

4.安装 python3.8

4.1. 创建安装路径

mkdir -p /usr/local/python/python3.8

4.2. 进入安装路径下载源码

cd /usr/local/python/python3.8
curl -O https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

4.3. 解压源码压缩包

tar xf Python-3.8.0.tgz

4.4. 编译安装环境

cd Python-3.8
./configure

4.5. 安装python3.8

make && make install

4.6. 设置 python3.8 为默认版本

vi /etc/profile.d/python.sh         #编辑用户自定义配置,输入alias参数
alias python='/usr/local/bin/python3.8'  #这里写你的python路径

4.7 安装 pip

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py -i https://pypi.tuna.tsinghua.edu.cn/simple/

4.8 安装常用工具

# 安装网络工具
yum -y install net-tools
# 安装 vim 编辑器
yum -y install vim

4.9 退出容器

exit

注意:

  • 此时如果重新使用 docker run -i -t centos /bin/bash 进入容器,那么启动的这个容器是一个初始的 centos 容器,前面安装的程序和包在这个容器中并不存在;
  • 这就需要我们在 退出后保存镜像,之后重启的时候启动的是被修改过的镜像。

5. 保存镜像

docker ps -a

找到 CONTAINER ID,我这里的是 3b1be8838a8a

docker commit 3b1be8838a8a centos-python3.8
  • 查看新镜像
docker images

此时出现了一个新的镜像 centos-python3.8,这就是我们修改过的镜像。

C:\Users\zgd>docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-python3.8    latest              ff48920deabb        38 seconds ago      947MB
centos              latest              0d120b6ccaa8        2 months ago        215MB
  • 启动修改后的镜像
docker run -i -t centos-python3.8 /bin/bash
  • 启动后执行 python 命令,成功进入 python 交互编辑器。
[root@ad8750c26f60 /]# python
Python 3.8.0 (default, Oct 23 2020, 06:10:09)
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
举报

相关推荐

0 条评论