目录
先停止和删除所有之前实验的容器:
docker stop $(docker ps -a -q) // stop停止所有容器
docker rm $(docker ps -a -q) // remove删除所有容器
docker images | awk '{print $3}' | xargs docker rmi // 删除所有镜像
docker rmi $( docker images -q ) // 删除所有镜像
搜索自己并拉取,还是可以找到的:
docker search antony314
docker pull antony314/centos:v1
必须要加:v1,因为不加是默认tag :latest,而我没有latest版本的镜像:
用这个镜像开启容器并开始继续鼓捣:
[root@小林のCentos 12:08:59 ~]>101$ docker run -t -i antony314/centos:v1 /bin/bash
[root@7cc9c057d099 /]# cd /root/tools/
进入tools之后继续wget 最新的python,打算采用源码安装,解压并进入:
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
tar -vzxf Python-3.7.2.tgz
cd Python-3.7.2
提前安装openssl,gcc和'_ctypes'的依赖,并安装sqlite:
yum install openssl openssl-devel
yum install gcc
yum install libffi-devel
yum install sqlite-devel
开始安装python:
./configure --prefix=/usr/local/python37 --with-ssl --enable-optimizations
make
make install
引用 : what does --enable-optimizations do while compiling python?
安装完成,同时直接安装上了pip 和 setuptools:
网络问题,连接中断,需要重新进入刚刚的容器:
[root@小林のCentos 14:55:27 ~]>3$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7cc9c057d099 antony314/centos:v1 "/bin/bash" 3 hours ago Up 3 hours blissful_feistel
[root@小林のCentos 14:55:38 ~]>4$ docker attach 7cc9c057d099
[root@7cc9c057d099 Python-3.7.2]#
设置软链接:
ln -s /usr/local/python37/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python37/bin/pip3.7 /usr/bin/pip3
至此python3.7安装,一切OK。
这里打算先打包一波:
exit
docker commit -m="v1.1 update from of-centos add python3.7" -a="antony" 7cc9c057d099 antony314/centos:v1.1
[root@小林のCentos 15:30:36 ~]>6$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
antony314/centos v1.1 50b5b5058224 54 seconds ago 833MB
antony314/centos v1 47dd3157ad26 23 hours ago 273MB
[root@小林のCentos 15:31:30 ~]>7$ docker push antony314/centos:v1.1
可以看到新上传的镜像已经很大了。查看在hub私有库上的大小:
继续,安装flask和相关东西,同时看看能不能精简大小:
[root@小林のCentos 15:55:39 ~]>8$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7cc9c057d099 antony314/centos:v1 "/bin/bash" 4 hours ago Exited (0) 33 minutes ago blissful_feistel
[root@小林のCentos 16:01:28 ~]>9$ docker attach 7cc9c057d099
You cannot attach to a stopped container, start it first
[root@小林のCentos 16:01:40 ~]>10$ docker start 7cc9c057d099
7cc9c057d099
[root@小林のCentos 16:02:24 ~]>11$ docker attach 7cc9c057d099
[root@7cc9c057d099 /]# pip3 install flask flask_login pymysql sqlalchemy requests pandas
Collecting flask
Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB)
100% |████████████████████████████████| 92kB 601kB/s
Collecting flask_login
Downloading https://files.pythonhosted.org/packages/c1/ff/bd9a4d2d81bf0c07d9e53e8cd3d675c56553719bbefd372df69bf1b3c1e4/Flask-Login-0.4.1.tar.gz
Collecting pymysql
Downloading https://files.pythonhosted.org/packages/ed/39/15045ae46f2a123019aa968dfcba0396c161c20f855f11dea6796bcaae95/PyMySQL-0.9.3-py2.py3-none-any.whl (47kB)
100% |████████████████████████████████| 51kB 25.3MB/s
Collecting sqlalchemy
Downloading https://files.pythonhosted.org/packages/05/d2/17fb194f4ae83577258ea1d81da3d5d5643f4957fa14fd0261d78d648bf5/SQLAlchemy-1.2.16.tar.gz (5.7MB)
100% |████████████████████████████████| 5.7MB 4.3MB/s
Collecting requests
Downloading https://files.pythonhosted.org/packages/7d/e3/20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/requests-2.21.0-py2.py3-none-any.whl (57kB)
100% |████████████████████████████████| 61kB 29.1MB/s
Collecting pandas
Downloading https://files.pythonhosted.org/packages/67/a7/12261a51ac2e7be4c698ca27cbe364ca5f16d64999456ee47ea8c7b44417/pandas-0.23.4-cp37-cp37m-manylinux1_x86_64.whl (8.8MB)
100% |████████████████████████████████| 8.8MB 3.1MB/s
Collecting itsdangerous>=0.24 (from flask)
Downloading https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting click>=5.1 (from flask)
Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)
100% |████████████████████████████████| 81kB 38.3MB/s
Collecting Jinja2>=2.10 (from flask)
Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB)
100% |████████████████████████████████| 133kB 45.6MB/s
Collecting Werkzeug>=0.14 (from flask)
Downloading https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB)
100% |████████████████████████████████| 327kB 41.1MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
100% |████████████████████████████████| 143kB 44.8MB/s
Collecting idna<2.9,>=2.5 (from requests)
Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
100% |████████████████████████████████| 61kB 29.4MB/s
Collecting certifi>=2017.4.17 (from requests)
Downloading https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.whl (154kB)
100% |████████████████████████████████| 163kB 45.5MB/s
Collecting urllib3<1.25,>=1.21.1 (from requests)
Downloading https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl (118kB)
100% |████████████████████████████████| 122kB 47.4MB/s
Collecting numpy>=1.9.0 (from pandas)
Downloading https://files.pythonhosted.org/packages/3d/10/62224c551acfd3a3583ad16d1e0f1c9e9c333e74479dc51977c31836119c/numpy-1.16.0-cp37-cp37m-manylinux1_x86_64.whl (17.3MB)
100% |████████████████████████████████| 17.3MB 1.8MB/s
Collecting python-dateutil>=2.5.0 (from pandas)
Downloading https://files.pythonhosted.org/packages/74/68/d87d9b36af36f44254a8d512cbfc48369103a3b9e474be9bdfe536abfc45/python_dateutil-2.7.5-py2.py3-none-any.whl (225kB)
100% |████████████████████████████████| 235kB 45.0MB/s
Collecting pytz>=2011k (from pandas)
Downloading https://files.pythonhosted.org/packages/61/28/1d3920e4d1d50b19bc5d24398a7cd85cc7b9a75a490570d5a30c57622d34/pytz-2018.9-py2.py3-none-any.whl (510kB)
100% |████████████████████████████████| 512kB 37.4MB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask)
Downloading https://files.pythonhosted.org/packages/e4/c4/adcc2d6f2ac2146cc04e076f14f1006c1de8e1e747fa067668b6573000b8/MarkupSafe-1.1.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting six>=1.5 (from python-dateutil>=2.5.0->pandas)
Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Installing collected packages: itsdangerous, click, MarkupSafe, Jinja2, Werkzeug, flask, flask-login, pymysql, sqlalchemy, chardet, idna, certifi, urllib3, requests, numpy, six, python-dateutil, pytz, pandas
Running setup.py install for flask-login ... done
Running setup.py install for sqlalchemy ... done
Successfully installed Jinja2-2.10 MarkupSafe-1.1.0 Werkzeug-0.14.1 certifi-2018.11.29 chardet-3.0.4 click-7.0 flask-1.0.2 flask-login-0.4.1 idna-2.8 itsdangerous-1.1.0 numpy-1.16.0 pandas-0.23.4 pymysql-0.9.3 python-dateutil-2.7.5 pytz-2018.9 requests-2.21.0 six-1.12.0 sqlalchemy-1.2.16 urllib3-1.24.1
pip装了flask等一些常用模块,小几十M应该是有了的,再删除刚刚的安装目录看能不能起到精简大小的作用:
rm -rf /root/tools/Python-3.7.2*
反而比V1.1更轻了,看起来删除不必要的文件去让images变小想必还是有效果的: