docker
Docker和虚拟机的主要区别就是 是否拥有独立的操作系统内核。
https://liaoxuefeng.com/blogs/all/2022-05-24-docker/
A container is a running instance of an image, including the image and its runtime state and files.
以下是将
app.py
打包成 Docker 镜像并运行的步骤:1. 创建
Dockerfile
在与
app.py
同目录下创建一个名为Dockerfile
的文件,内容如下:2. 创建
requirements.txt
如果
app.py
依赖某些 Python 库,创建一个requirements.txt
文件,列出所有依赖:3. 构建 Docker 镜像
运行以下命令,在当前目录中构建 Docker 镜像:
docker build -t app-image .
t app-image
:给镜像取名为app-image
。
.
:表示当前目录是构建上下文。
4. 运行 Docker 容器
应用在 Docker 容器中运行时,它感知到的 IP 是容器的 IP,通常是 Docker 网络中的一个局域网 IP,而不是主机的 IP。
启动容器并绑定端口(假设
app.py
运行在端口5000
):docker run -d -p 5000:5000 --name app-container app-image
d
:后台运行容器。
p 5000:5000
:将容器的端口5000
映射到主机的端口5000
。
-name app-container
:容器名称为app-container
。
app-image
:使用之前构建的镜像。
docker rm app-container
docker rmi app-image
docker run -d -p 5000:5000 --name app-container app-image
docker logs my-container
docker save -o my-app.tar my-app
scp -i ./desktop/be_key.pem ./my-app.tar ec2-user@3.27.205.207:/home/ec2-user/my-app.tar
docker load -i my-app.tar
- python发布到AWS ECR
docker build -t test .
docker build --platform linux/amd64 --provenance false -t docker-image:test .
# 先用 docker tag 给本地镜像打上远程仓库地址标签,然后用 docker push 推送该标签的镜像。
docker tag test:latest 401731372270.dkr.ecr.us-west-2.amazonaws.com/test:latest
docker push 401731372270.dkr.ecr.us-west-2.amazonaws.com/test:latest