docker里需要用到vim
apt-get update
apt-get install vim
dockers mariadb的使用
-
安装mariadb
docker pull mariadb
-
启动mariadb
docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=输入数据库root用户的密码 -v /data/mariadb/data:/var/lib/mysql -d mariadb
-
进入镜像
docker exec -it mariadb bash
-
创建数据库
mysql -uroot -pMariadb123! create database vmware;
docker 的python使用dockerfile自己生成镜像
-
dockerfile文件
# 使用python的版本。docker会去找到对于的python镜像去运行我们的app FROM python:3.7.4 # 在构建的过程中更新下apt列表 RUN apt-get update WORKDIR /home/ # 这里的requirements.txt是和dockerfile同级目录下 COPY requirements.txt ./ # pip安装requirements.txt里面的python包,requirements.txt内容是项目的包。 # -i 是因为清华源可以加速 RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt # 这里前面一个是本机的django项目的相对路径以当前文件找到django项目,必须是django路径不能在外面多套一层不然下面run的时候docker ps是没有数据的 COPY backend . EXPOSE 8000 # 重点! 打开容器的8000虚拟端口 # 标准的运行Django自带的服务器。这是在容器运行后运行的命令 CMD ["uwsgi","--ini","/home/backend/uwsgi.ini"]
-
构建镜像
docker build -t myhci .
-
运行镜像
docker run -d -it -p 8000:8000 --name hci06 -v /root/hci/:/home myhci
-
项目中用到的文件夹创建
mkdir /var/log/hci/
mkdir /etc/hci/
pip install -r requirements.txt
# 需要把hci.web.conf文件也放到backend里面
cp hci.web.conf /etc/hci/hci.web.conf
- 生成数据库
注:1.修改setting配置文件中的MySQL的host的ip地址和用户名密码,特别注意这个host需要查看MySQL的镜像使用docker inspect -it xxx(mysql)里面有分配的ip
python manager.py makemigrations
python manager.py migrate
python manager.py createsuperuser
···
python manager.py runserver 0.0.0.0:8000
#可以正常启动了,后面必须加不然访问不进来
# 或者使用uwsgi启动配合nginx的配置就可以全套使用了
# uwsgi --ini uwsgi.ini
docker 的python项目安装
-
下载python镜像
docker pull python:3.7.4
-
启动python
docker run -d -it -p 8000:8000 --name hci01 -v /root/hci/:/home python:3.7.4
-
项目中用到的文件夹创建
mkdir /var/log/hci/ mkdir /etc/hci/ pip install -r requirements.txt # 需要把hci.web.conf文件也放到backend里面 cp hci.web.conf /etc/hci/hci.web.conf
-
修改setting的配置文件
setting中数据的host,user,password,需要修改,通过docker inspect xxxx(it)来查看ip
-
生成数据库
python manage.py makemigrations python manage.py migrate python manage.py createsuperuser ··· python manage.py runserver #可以正常启动了 # postman访问 http://10.240.203.112:8000/hci/user/login/ 注意后面的一个/
-
使用uwsgi
修改uwsgi.ini文件 #执行 uwsgi --ini uwsgi.ini
dockers nginx的使用
注:nginx和前端的dist放到同一个docker中
-
下载nginxjingx
docker pull nginx
-
执行启动nginx镜像
docker run -d --name nginx1 -p 443:443 -it -v /root/hci/:/home/hci/ nginx /bin/bash
-
进入镜像
docker exec -it nginx1 bash
-
server.crt/key文件
mkdir -p /etc/nginx/ssl cp server.* /etc/nginx/ssl/ 在把上面的两个文件移到ssl文件夹中 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bk cp etc/nginx.conf /etc/nginx/nginx.conf
-
项目中的log是指定的位置error_log /var/log/hci/nginx.error.log
mkdir -p /var/log/hci/
-
把dist文件加放到对应的位置上
mkdir -p /usr/share/hci-portal/frontend/client/ cp -r dist/ /usr/share/hci-portal/frontend/client/
-
修改nginx配置,可以在本机挂在的位置修改,在把修改过的移到/etc/nginx/nginx.conf,修改外面的这里面并没有修改
server { listen 443 ssl; server_name _; root /usr/share/hci-portal/frontend/client/dist; index index.html; # ssl on; 去掉,因为上面listen 443 ssl;监听了 ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; include /etc/nginx/default.d/*.conf; location /hci { include uwsgi_params; uwsgi_pass 172.17.0.5:8000; #这个地方需要修改对应uwsgi镜像的ipaddr } location / { try_files $uri $uri/ /index.html; } }
-
重启nginx
使用pkill -9 nginx 没有pkill apt-get update #先更新apt-get apt-get install procps