docker学习笔记
CentOS安装docker
安装Docker依赖项:Docker需要一些依赖项来运行。运行以下命令来安装这些依赖项:
1 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
添加Docker官方仓库:Docker官方提供了用于安装Docker的仓库。运行以下命令来添加Docker官方仓库:
1 | sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
安装Docker引擎:运行以下命令来安装Docker引擎:
1 | sudo yum install -y docker-ce docker-ce-cli containerd.io |
启动Docker服务:安装完成后,启动Docker服务并设置为开机自启:
1 | sudo systemctl start docker |
验证安装:运行以下命令来验证Docker是否安装成功:
1 | sudo docker version |
Windows部署(失败)
安装 Docker Desktop:https://www.docker.com/products/docker-desktop/
打开 Hyper-V:
WSL安装:https://learn.microsoft.com/zh-cn/windows/wsl/install
Linux部署
腾讯云的镜像仓库的使用:https://cloud.tencent.com/developer/article/2273451?from=15425
腾讯云后台:https://console.cloud.tencent.com/tcr/repository/
快捷操作:
镜像上传成功
Dockerfile运行的两种方式
- 指定应用程序
1 | ENTRYPOINT ["./startup.sh"] |
- 命令行
1 | CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] |
deploy.sh 文件的作用
实现一键部署,简化打镜像流程,例如:
1 | git pull |
常用命令:
docker logs guxiang –tail 50
docker rm / rmi
docker exec -it xxx /bin/bash
docker cp /root/spider/kf_increase guxiang:/root
实战经验
下面是使用 Linux 部署 FastAPI 的 Docker 容器,并能持续运行,并将容器上传到腾讯云镜像仓库的完整流程:
在本地创建一个名为
Dockerfile
的文件,并使用文本编辑器打开它。在
Dockerfile
中添加以下内容:
1 | # 使用 Python 3.8 作为基础镜像,vpn必须开全局代理 |
- 在项目根目录下创建一个名为
requirements.txt
的文件,并将 FastAPI 和其他依赖项添加到该文件中。例如:
1 | fastapi |
- 打开终端,进入项目根目录,执行以下命令构建 Docker 镜像:
1 | docker build -t fastapi-app . |
这将使用 Dockerfile
构建一个名为 fastapi-app
的 Docker 镜像。
- 运行以下命令启动 Docker 容器:
1 | docker run -d -p 8000:8000 --name fastapi-container fastapi-app |
这将在后台运行一个名为 fastapi-container
的容器,并将容器的 8000 端口映射到主机的 8000 端口。
- 登录到腾讯云镜像仓库,使用以下命令:
1 | docker login --username=<腾讯云用户名> --password=<腾讯云密码> <腾讯云镜像仓库地址> |
请将 <腾讯云用户名>
、<腾讯云密码>
和 <腾讯云镜像仓库地址>
替换为您自己的信息。
- 为镜像打上标签,使用以下命令:
1 | docker tag fastapi-app <腾讯云镜像仓库地址>/<镜像名称>:<标签> |
请将 <腾讯云镜像仓库地址>
、<镜像名称>
和 <标签>
替换为您自己的信息。
- 推送镜像到腾讯云镜像仓库,使用以下命令:
1 | docker push <腾讯云镜像仓库地址>/<镜像名称>:<标签> |
请将 <腾讯云镜像仓库地址>
、<镜像名称>
和 <标签>
替换为您自己的信息。
完成上述步骤后,您的 FastAPI 应用程序将以 Docker 容器的形式运行,并且镜像已成功上传到腾讯云镜像仓库中。