docker笔记
docker images
查询docker中的镜像
docker ps
查询运行的容器
docker exec -it 033e95d56c0d /bin/bash
进入某个容器
docker inspect 033e95d56c0d
查看容器详细信息
docker restart 033e95d56c0d
重启容器
docker start 1b200f31532c
运行容器
docker stop 18d6ee3e433a
停止容器
docker cp webtestfb.py b73f34b4d818:/home/
将文件复制到容器中的/home文件夹内
docker cp b73f34b4d818:/home/static ./home
将容器内的文件复制到外面
docker rmi 18d6ee3e433a
删除镜像
docker rmi -f 18d6ee3e433a
强制删除
编写一个docker-compose.yml
version: '3'
services:
files_server:
working_dir: /home/webServer
image: python:3.12-alpine
container_name: web_server
environment:
- TZ=Asia/Shanghai
- LANG=C.UTF-8
- PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
- PIP_TRUSTED_HOST=mirrors.aliyun.com
restart: always
volumes:
- D:/python312image/webServer:/home/webServer
command: >
sh -c "pip install --no-cache-dir fastapi uvicorn -r /home/webServer/requirements.txt && python /home/webServer/webapi.py"
ports:
- "5678:5678"
network_mode: bridge
写一个简单的python文件
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/")
async def root():
return {"message": "Hello World"}
if __name__ == "__main__":
# 启动服务器
uvicorn.run(app, host="0.0.0.0", port=5678)
通过docker compose up -d运行文件
安装完成后可以看到
浏览器上可以看到
我们还可以将本地容器打包后放到另外一台电脑上运行
docker commit 1b200f31532c my_image
将容器提交为my_image的镜像
docker save -o my_image.tar my_image
将镜像作为tar文件下载到本地
docker load -i my_image.tar
在其他电脑上运行镜像(服务器上docker load -i /home/my_image.tar)
docker run my_image
启动镜像
docker run -it -v “D:\python312image\webServer:/home/webServer” my_image
启动镜像时设置挂载目录