fastapi项目 09-阿里云服务部署fastapi项目
安装docker
按照官方文档的流程来。
1. 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装需要的软件包
yum install -y yum-utils
3. 设置镜像仓库
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
4. 更新yum软件包索引
yum makecache fast
5. 安装 Docker CE (社区版)
yum install docker-ce docker-ce-cli containerd.io
6. 启动docker
systemctl start docker
7. 测试docker是否安装成功
docker version
docker run hello-world
docker images
8. 配置阿里云镜像加速
打开阿里云官网地址:https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors
如果要卸载的话
1. 停止docker服务
systemctl stop docker
2. 卸载docker依赖
yum -y remove docker-ce docker-ce-cli containerd.io
3. 删除docker默认工作路径
rm -rf /var/lib/docker
配置阿里云镜像加速
打开阿里云官网地址:https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors
将按照指令执行:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fgo3uo8x.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
搭建mysql数据库
1. 拉去mysql5.7的数据库镜像
docker pull mysql:5.7
2. 查看镜像是否拉去成功
docker images
3. docker run运行容器
docker run -p 3309:3306 --name dackmysql -e MYSQL_ROOT_PASSWORD=xx123456 -d mysql:5.7
-p 映射端口,容器默认端口3306,映射到宿主机3309(端口可以直接设置)
-- name 设置容器名称,名称需唯一
-e 设置root用户的密码, 密码直接设置
-d 挂后台启动
开放阿里云3309端口
默认里云的端口是无法通过外部去访问的,所以需要手动开启3309端口。
-
- 防火墙中添加3309端口访问
- 防火墙中添加3309端口访问
-
- 安全组中开放3309端口
- 安全组中开放3309端口
连接数据库,创建项目数据库
容器是镜像的示例,所以启动容器后,外部就可以访问容器。
-
- 打开navicat客户端,连接,根据项目的数据库,进行创建fast,和项目中保持一致。
- 打开navicat客户端,连接,根据项目的数据库,进行创建fast,和项目中保持一致。
-
- 修改项目中的数据库IP,和服务器的保持一致,才能连接上。
- 修改项目中的数据库IP,和服务器的保持一致,才能连接上。
通过Dockerfile部署构建镜像
dockerfile文件放在项目的根目录下,首先服务器中创建一个文件夹,将项目代码上传到该文件中。进入到项目的根目录下执行:
1. 构建镜像
docker build -t dack_fast:v1 . (后面的点别忘了)
2. 启动容器
docker run -d --name fast_pro -p 8001:8001 dack_fast:v1
3. 检查docker部署的log,查看容器部署是否成功,代码是否报错:
docker logs -f 容器名 or ID
通过外部访问看是否可以访问。
如果后期需要修改某个项目的文件,应该怎么弄呢?
1. 首先需要进入到容器内部,将该文件删除
docker exec -it dack_fast /bin/bash
2. 删除该文件夹
rm 文件夹名称
3. 先将文件夹上传到本地服务器,再上传到容器内
docker cp /路径/文件名 容器ID:/上传路径
例如:
sudo docker cp gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz 00e7d0f73704:/usr/share/
4. 进入到容器内部查看成功没,输入exit退出容器
5、 重启容器
docker ps
docker stop 容器name
docker start 容器name