根据 python:3.9 镜像创建 项目容器 autotpenv
docker run -itd -v /home/tzktzk1/software/autotpsite:/opt --name autotpenv python:3.9 sh /opt/auto_deploy.sh # 加自动部署命令版
docker run -itd -v /home/tzktzk1/software/autotpsite:/opt --name autotpenv python:3.9
docker logs -f autotpenv # 查看日志
进入容器 autotpenv 内部
root@tzktzk1-Lenovo-Gaming:~/home# docker exec -it autotpenv /bin/bash
root@f75bd86db4cd:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@f75bd86db4cd:/# cd /opt/
root@f75bd86db4cd:/opt# python --version
Python 3.9.9
root@f75bd86db4cd:/opt# pip --version
pip 21.2.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
root@f75bd86db4cd:/opt# ls
autotpsite demo dist manage.py requirements.txt sqtp utils uwsgi.ini uwsgi8081.pid uwsgi_server.log
安装依赖库
root@f75bd86db4cd:/opt# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
安装 uwsgi
root@48cd2282cbfb:/opt# pip install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
如果需要在容器内修改 uwsgi.ini 文件,需要先安装 Vim (容器内默认是不安装vim的)
root@48cd2282cbfb:/opt# apt-get update
root@48cd2282cbfb:/opt# apt-get install -y vim # 安装Vim
root@48cd2282cbfb:/opt# vim --version # 查看vim版本信息
root@48cd2282cbfb:/opt# vim uwsgi.ini # 修改文件
uwsgi.ini
[uwsgi]
chdir = ./
# 项目根目录
module = autotpsite.wsgi:application
# 指定wsgi模块下的application对象
#http = 0.0.0.0:8081
http-socket = 0.0.0.0:8081
# 对本机8081端口提供服务
master = true
# 主进程
# 以上4个是核心配置项
#vhost = true
# 多站模式
#no-site = true
# 多站模式时不设置入口模块和文件
#workers = 2
# 子进程数
#reload-mercy = 10
#vacuum = true
# 退出、重启时清理文件
#max-requests = 1000
#limit-as = 512
#buffer-size = 30000
pidfile = uwsgi8081.pid
# pid文件,用于下脚本启动、停止该进程
daemonize = uwsgi_server.log
# 日志文件
disable-logging = true
# 不记录正常信息,只记录错误信息
启动uwsgi服务
root@48cd2282cbfb:/opt# uwsgi uwsgi.ini
[uWSGI] getting INI configuration from uwsgi.ini
root@48cd2282cbfb:/opt# tail -100f uwsgi_server.log # 查看日志
docker自定义网络
创建网络
docker network create 网络名
root@tzktzk1-Lenovo-Gaming:/home# docker network create autotp
e64380d457c88c644abc6af61a5de6b659e065d7c6069f5f1b7175c4c9f83840
查看网络
docker network inspect 网络名
root@tzktzk1-Lenovo-Gaming:/home# docker network inspect bridge
[
{
"Name": "bridge",
"Id": "a221b5797af793efe297cc20a77fe2c5a11e69e3b74cdb37c8c4ce5540b369f5",
"Created": "2023-12-18T15:16:39.321706574+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
root@tzktzk1-Lenovo-Gaming:/home#
加入网络
docker network connect 网络名 容器名
docker network connect autotp autotpenv
移除网络
docker network remove 网络名 #当前网络下没有挂载容器
离开网络
docker network disconnect 网络名 容器名