部署
一、拉取镜像
docker pull ubuntu:16.04
二、使用镜像创建容器
docker run -it --name=ubuntu_flask ubuntu:16.04 /bin/bash
三、更新apt-get
apt-get update
四、安装wget
# https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
五、使用wget下载python3.8
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
六、解压Python包
tar -xf Python-3.8.0.tgz
cd Python-3.8.0
# ./configure --enable-optimizations
# --enable-optimizations选项通过运行多个测试来优化Python二进制文件。 这会使构建过程变慢。
七、安装依赖
apt-get install python-dev
apt-get install libffi-dev
apt-get install libssl-dev
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
八、安装python二进制文件
./configure prefix=/usr/local/python3
make && make install
九、修改软链接
备份之前的:mv /usr/bin/python /usr/bin/python.bak
添加python3软链接:ln -s /usr/local/python3/bin/python3 /usr/bin/python
添加pip3软链接:ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
最后执行python即可,不在需要python3
十、安装flask、requests
pip install flask
pip install requests
十一、commit一个新镜像
docker commit ubuntu_flask ubuntu_flask:v1
注:ubuntu_flask 容器名
ubuntu_flask:v1 镜像名 和 TAG
十二、使用新的镜像生成一个新的容器
docker run -dit --restart=always --name=gdt_flask -p 9999:9999 -e LANG=en_US.UTF-8 ubuntu_flask:v1 bash /root/auto_run_gdt.sh
注:–restart=always Docker容器,容器自启
–name=xxx 容器名字
-p 端口:[主机端口:容器端口]
-dit 后台交互模式运行容器,分配一个伪终端
-e 给容器设置语言LANG=en_US.UTF-8 英文UTF-8
可以进入容器后 locale查看容器语言
如果出现错误:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
解决办法:
locale-gen en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
执行locale-gen en_US.UTF-8遇到 bash: locale-gen: command not found
解决办法:
apt-get install -y locales
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
然后再次执行
locale-gen en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
十三、打包镜像
docker save -o 保存的文件名 镜像名:TAG
保存镜像为tar文件
十四、在其他机器加载镜像
docker load -i 镜像包tar文件
Fighter_ma: 弱小和无知不是生存的障碍,傲慢才是~