把我的网站部署到容器中---解决了我每次迁移网站的痛点

把我的网站部署到容器中—解决了我每次迁移网站的痛点

1.前言or需求

究极根本还是money不足,导致我经常换各家服务器以参与新用户优惠。首年服务器价格还是很实惠的,但这就需要我不断的迁移网站。因为网站依赖的环境和部署很繁琐,每次迁移都是心力交瘁,痛并难受着!还好,现在我学习了docker和kubernetes这些容器虚拟化技术。这就计划把网站容器化,以保持环境一致性和持久化。下次在进行网站迁移时直接docker pull 我的镜像,然后启动容器即可。妈妈再也不用担心我熬夜写bug啦!

img

2.框架构思

最好的选择是以k8s的pod形式运行,然后做service暴露,这样达到外部访问的目的。But,money!k8s少说三台2c4g服务器,果断放弃这种方案。

现在就只有docker可以利用了,还好一台服务器可以搞定。

你可能需要

阿里云服务器选购优惠

原创 Docker&K8s—Docker的安装、部署、镜像管理、容器操作、Dockerfile

原创 Docker&K8s—跟我一步步部署K8s(二进制安装部署)

原创 三台ECS使用kubeadm快速部署最新版本K8sv1.21.3

原创 利用阿里云ECS部署自己的私有harbor镜像仓库

2.1三容器思想

mysql 和 redis各位一个容器,在k8s集群中最好这样做,但是我用的docker,所以使用了第二种方法,见下文。

k8s-web

2.2单容器思想

也就是定制一个Centos镜像,满足所有依赖环境。后边采用此种思想实现。后边发现所有东西集合在一个容器里行成的镜像太大,3个多G。。。。But,money!将就用吧先。。。。

docker-web

3.容器制作—环境准备

  1. 安装docker

    参考我之前的文章:原创 Docker&K8s—Docker的安装、部署、镜像管理、容器操作、Dockerfile

  2. docker镜像

    docker pull centos:centos7
    

    镜像拉去后进入容器:

    # 运行容器 特权 端口映射 后台
    docker run -dti --name bt -p80:80 -p8888:8888 --privileged=true dachongming/django-web:bt /usr/sbin/init
    
    # 进入容器
    docker exec -ti 7c5784e1f1f7 /bin/bash
    # 关闭防火墙
    [root@7c5784e1f1f7 /]# systemctl stop firewalld
    
  3. 安装python3

    yum install python3 -y
    
  4. 安装uwsgi

    直接pip3安装会报缺少依赖错误,先安装依赖

    yum install gcc
    yum install python3-devel.x86_64
    

    此时,pip3安装成功

    pip3 install uwsgi
    
  5. 安装nginx

    # 先安装依赖epel-release 不然会报:No package nginx available
    yum install epel-release
    
    # 此时安装nginx
    yum install nginx
    
  6. 安装宝塔面板

    # 安装宝塔 中间按提示输入yes即可
    [root@7c5784e1f1f7 /]# yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
    

    服务器一定先端口放行

    此时浏览器访问:服务器公网IP:8888/1dea6e26

  7. 安装mysql、安装redis

    登陆宝塔后,搜索安装mysql和redis即可

    image-20211004142140934

4.做好的容器打包为镜像

持久保存:

docker commit -p CONTAINER ID docker.io/dachongming/alpine:v3.14.0_with_1.txt

docker commit -p 7c5784e1f1f7 docker.io/dachongming/bloglee:v1
docker push docker.io/dachongming/bloglee:v1

推送dockerhub比较慢,可以把镜像推送到我们的私有仓库:

docker commit -p 7c5784e1f1f7 harbor.liboer.top/public/bloglee:v1
docker push harbor.liboer.top/public/bloglee:v1

你可能需要:

阿里云服务器选购优惠

原创 利用阿里云ECS部署自己的私有harbor镜像仓库

整理成DockerFile

FROM dachongming/bloglee:v1

MAINTAINER libo_sober@163.com

COPY BlogLee /app/

WORKDIR /app/BlogLee

RUN source ./bloglee.sql &&\
    pips install ./requirements.txt &&\
    uwsgi --ini ./uwsgi.ini
    nginx
    
    
# 最后启动容器
docker run -dti --name bloglee -p80:80 -p8888:8888 -v/mydata/BlogLee:/app/ --privileged=true dachongming/bloglee:v1

后边有些还需要测试,我的服务器太卡啦,运行几个容器就宕机了。。。找时间在虚拟机上测一下吧

附录

查看运行容器
docker ps

查看所有容器
docker ps -a

进入容器
其中字符串为容器ID:

docker exec -it d27bd3008ad9 /bin/bash

停用全部运行中的容器:
docker stop $(docker ps -q)

删除全部容器:
docker rm $(docker ps -aq)

一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大聪明Smart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值