docker-15-镜像Ubuntu20.04中安装python3.9

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1 拉取并运行镜像

从docker hub 拉取镜像以ubuntu20.04为例

docker pull ubuntu:20.04
docker run -it  ubuntu:20.04 /bin/bash

发现命令行变为root@1234abcd5678:这样就是进入docker容器里了。以下是docker常用的命令

# 以下均为在宿主机上使用的命令不要在容器里使用
docker pull image_name:v1.0 #下载名为image_name:v1.0的镜像
docker images  #查看所有镜像
docker run -it image_name:v1.0 #把名为image_name:v1.0的镜像运行成为一个容器
docker ps -a  #查看所有容器
docker start -i 1234abcd5678  #启动ID为1234abcd5678的容器
docker cp ./abc.txt 1234abcd5678:/root/  #把当前路径下的abc.txt拷贝到容器1234abcd5678的/root/目录下
docker rm 1234abcd5678  #删除ID为1234abcd5678的容器
docker rmi image_name:v1.0  #删除名为image_name:v1.0的镜像
docker commit 1234abcd5678 image_name:v2.0 #把ID为1234abcd5678的容器打包成名为image_name:v2.0的镜像

从docker hub下载的Ubuntu20.04镜像只有几十兆(72.8M)基本什么都没安装所有环境都从头安装。

换源加速

docker cp ./sources.list f5d3f2b62974:/etc/apt/
文件sources.list
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

2 安装Python3

Ubuntu20.04发行版是默认安装python3.8的(但拉取下来的镜像中并没有)想换版本的可以跟着此步骤编译安装已经有Python且不想换版本的忽略此步。
一、首先安装一些依赖有权限问题的记得在apt前面加sudodocker里面默认是root用户所以不需要sudo

apt update
apt install -y pkg-config
apt install -y wget
apt install -y gcc
apt install -y vim 
#apt install -y software-properties-common
#apt install -y kmod
#apt install -y git
#apt install -y unzip

可选如果想编译python所有的可选模块也安装一下下面这些依赖

apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev lzma lzma-dev uuid-dev libncurses5-dev libreadline6-dev libgdbm-compat-dev liblzma-dev gdb lcov

二、下载Python源码安装包并解压别的版本自己替换网址。
下载地址https://www.python.org/ftp/python。

wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tar.xz
下载太慢通过命令写到容器中
docker cp ./Python-3.9.12.tar.xz f5d3f2b62974:/
tar -xf Python-3.9.12.tar.xz
cd Python-3.9.12

三、编译安装

./configure --enable-optimizations --prefix=/usr/local/mypython3912
make
make install

其中–prefix选项是配置安装的路径若是不配置该选项安装后可执行文件默认放在/usr /local/bin库文件默认放在/usr/local/lib配置文件默认放在/usr/local/etc其它的资源文件放在/usr /local/share比较凌乱。

若是配置–prefix如./configure --prefix=/usr/local/test能够把全部资源文件放在/usr/local/test的路径中不会杂乱。

用了—prefix选项的另外一个好处是卸载软件或移植软件。当某个安装的软件再也不须要时只须简单的删除该安装目录就能够把软件卸载得干干净净移植软件只需拷贝整个目录到另一个机器便可相同的操作系统。
在这里插入图片描述
在这里插入图片描述
四、设置软连接

ln -s /usr/local/mypython3912/bin/python3.9 /usr/bin/python3
#为 pip 设置软链接
ln -s /usr/local/mypython3912/bin/pip3.9 /usr/bin/pip3

3 容器打包为镜像

#把ID为1234abcd5678的容器打包成名为image_name:v2.0的镜像
docker commit 1234abcd5678 image_name:v2.0 

docker commit f5d3f2b62974 mypython3912:v1.0
大小(1.08G)
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6