docker常用命令使用dockerfile构建镜像,推送到私有镜像仓库
docker常用命令和操作
# 创建镜像(进入dockerfile所在的路径)
docker build -t my_image:1.0 .
# 查看镜像
docker images
# 创建容器
docker run -dit --restart=always -p 9700:9700 --name my_container my_image:1.0
# 查看容器
docker ps -a
# 进入容器
docker exec -it my_container /bin/bash
# 退出容器
exit
# 启动容器(容器状态为exited)
docker start my_container
# 暂停容器
docker stop my_container
# 删除容器
docker rm my_container
######
# 将容器转化为镜像
docker commit my_container my_image:1.2
# 将镜像转为压缩包
docker save -o my_package.tar my_image:1.2
# 删除原镜像
docker rmi my_image:1.2
# 将压缩包解压得到镜像
docker load –i my_package.tar
#############将镜像推送到远程仓库##########
##########################
####3创建基础镜像教程########
从dockerhub上拉取python镜像
docker pull python:3.10
# 创建容器不进入
docker run -dit --name=p1 python:3.10
# 进入容器
docker exec -it p1 bash
# 创建文件夹
mkdir app
# 推出容器
exit
# 将需要的依赖拷贝到镜像指定目录
docker cp torchvision-0.15.1+cpu-cp310-cp310-linux_x86_64.whl p1:app/
# 升级pip
pip3 install --upgrade pip
# 安装需要的依赖(加上镜像源)
pip install -r requirements_new.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 退出镜像
exit
# 将容器打包为镜像(确保容器正在运行)
docker commit p1 logistics_park:base
# 标记镜像
docker tag logistics_park:v1.5 10.82.27.215:10081/ai_platform/logistics_park:v1.5
# 将镜像推送到私有仓库
docker push 10.82.27.215:10081/ai_platform/logistics_park:v1.5
#######根据基础镜像#######构建镜像
# 构建镜像---使用dockerfile构建
docker build -t logistics_park:v1.1 .
# 容器运行命令:
docker run -dit --restart=always -p 9700:9700 --name logistics_park logistics_park:v1.1
# 实时查看容器日志(Ctrl + C退出)
docker logs -f logistics_park
# 类似cat的查看方式
docker logs logistics_park
dockerflie
使用dockerdocker build命令来构建
# docker build -f 指定dockerflie路径 -t 镜像名称:Tag "."表示当前目录
# 如果dockerflie在当前目录,则可以省略
docker build -f path/to/Dockerfile -t myapp:latest .
# 使用官方的Python运行时作为父镜像
FROM 10.82.27.215:10081/ai_platform/logistics_park:base
# 设置工作目录为/app
WORKDIR /app
# 将当前目录内容复制到位于 /app 的容器中
COPY . /app
# 安装任何需要的包
# RUN pip install torch-2.0.0+cpu-cp310-cp310-linux_x86_64.whl
# RUN pip install torchvision-0.15.1+cpu-cp310-cp310-linux_x86_64.whl
# RUN pip install --no-cache-dir -r requirements_new.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install ai_platform_dataset_sdk-1.0.0-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install gevent==24.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 将/etc/localtime链接到上海时区文件
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 验证时区
RUN date
# 对外暴露的端口号
EXPOSE 9700
# 定义环境变量
ENV model=gpt-4-vision-preview
ENV api_key=d2ab5xxxxe4b929b
ENV api_base=https:XXXXXX.openai.azure.com/
ENV deployment_name=vision-preview-1
ENV api_version=2023-12-01-preview
# 当容器启动时运行python app.py
CMD ["python", "app.py"]
docker compose用法
相当于启动启动容器命令,可以在文件中指定参数,尤其适合需要同时启动多个容器,并且容器间存在交互的场景
docker-compose.yaml文件
version: '3'
services:
logistics_park:
image: logistics_park:datasets_v1
container_name: logistics_park
restart: always
ports:
- "9700:9700"
# 运行命令:
# docker compose up -d
# docker compose up --build -d 后台运行